2013-07-22 3 views
0

Мы начинаем использовать Migrator.NET для управления нашими миграциями баз данных, это фантастика, но у нас есть дополнительное требование, чтобы плагины, написанные для нашего программного обеспечения, которые требуют добавления собственных пользовательских полей (в зависимости от подключаемого модуля в частности).MigratorDotNet для плагинов Архитектура

Итак, в основном у нас есть наши основные таблицы базы данных и наши таблицы с плагинами.

Я надеялся, что в Migrator.NET я хотел бы видеть какой-то дополнительный атрибут, как этот

[Migration(1, "Core") 
public class Migration1 : Migration 
{ 
} 

, так что я смог бы затем подключить разработчиков затем быть в состоянии сделать что-то вроде

[Migration(1, "PluginName") 
public class Migration1 : Migration 
{ 
} 

к сожалению, этот параметр не существует, и таблица версии, кажется, не имеет никакого места для хранения имени тега/плагин

CREATE TABLE [dbo].[VersionInfo](
    [Version] [bigint] NOT NULL, 
    [AppliedOn] [datetime] NULL 
) ON [PRIMARY] 

Есть ли у кого-нибудь идеи, как я буду заниматься этим?

Я видел, что Ruby/Redmine поддерживают такую ​​архитектуру, поскольку они позволяют плагинам включать свои собственные миграции db, однако они хотели бы иметь возможность сделать это в MigratorDotNet.

+0

Ok I» v обнаружено, что RikMigrations поддерживает «Модуль» [сборка: миграция (typeof (M001_Update), 1, «ModuleName»] проблема только в том, что она не поддерживает MySql! d проект кажется довольно стильным по сравнению с FluentMigrations. В любом случае с помощью модуля plugin разработчики могут просто указать их имя в виде модуля, так что я почти там. У кого-нибудь есть решение для MySql? –

ответ

1

Вы упомянули вы мечение, и вы можете фильтровать миграции, основанные на тегах, например, так:

[Tags("DK", "NL", "UK")] 
[Tags("Staging", "Production")] 
[Migration(1)] 
public class DoSomeStuffToEuropeanStagingAndProdDbs() { } 

Смотрите следующие вики-страницу для получения более подробной информации:

https://github.com/schambers/fluentmigrator/wiki/Filter-migrations-run-based-on-Tags

+0

Спасибо, это здорово! Я дам ему пойти –

Смежные вопросы