MigratorDotNet for Plugins Architecture

时间:2013-07-22 04:56:42

标签: fluent-migrator migratordotnet migrator.net

我们开始使用Migrator.NET来管理我们的数据库迁移,这很棒,但是我们还要求为我们的软件编写插件,这些插件需要添加自己的自定义字段(当然,取决于插件)

基本上我们有一个核心数据库表和我们的插件特定表。

我希望在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中执行此操作。

1 个答案:

答案 0 :(得分:1)

您提到自己正在进行标记,并且您可以根据标记过滤迁移,例如:

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

有关详细信息,请参阅以下Wiki页面:

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