使用FluentMigrator添加代码和状态值的最佳实践?

时间:2012-03-01 16:04:21

标签: c# fluent-migrator schema-migration

我们正在开发一个使用Entity Framework 4(代码优先)和Fluent Migrator的项目。

在整个项目中,我们为所有架构更改创建了迁移,为我们想要在各种环境中填充的测试数据创建了配置文件

但是,插入我们想要在所有环境中填充的“代码”和/或“状态”的最佳做法是什么?我们应该在创建表格时指定它们还是应该为它们创建特定的配置文件?

更具体地说,我们有一个为我们的数据库定义的地址类型的“代码”表,如下所示:

[Migration(22)]
public class M0022_CreateAddressTypesTable : Migration
{
    public override void Up()
    {
        Create.Table("AddressTypes")
            .WithColumn("Id").AsInt32().NotNullable().PrimaryKey()
            .WithColumn("Name").AsString(50).NotNullable().WithDefaultValue(string.Empty)
            .WithColumn("Description").AsString(100).NotNullable().WithDefaultValue(string.Empty);
    }

    public override void Down()
    {
        Delete.FromTable("AddressTypes");
        Delete.Table("AddressTypes");
    }
}

那么,我们是否应该利用这个机会用我们的数据填充AddressTypes表?或者我们应该把它抽象成某种形式的个人资料?

我看到两者的利弊,所以我很想知道其他团队如何处理这种情况。

1 个答案:

答案 0 :(得分:2)

如果您确定在所有环境中都需要“参考数据”,那么我会将“参考数据”放在迁移类中,而不是配置文件中。

维护&使用简单的规则,代码理解总是更容易,例如:

个人资料=>特定(测试,其他)数据

迁移=>通用数据

特定的配置文件只会增加无用的复杂性(我的观点很简陋)。