3

我们正在开发一个使用 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 表?或者我们应该将其抽象为某种形式的配置文件?

我看到了两者的优点和缺点,所以我很想听听其他团队是如何处理这种情况的。

4

1 回答 1

2

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

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

配置文件 => 特定(测试、其他)数据

迁移 => 通用数据

一个特定的配置文件只会增加无用的复杂性(我的拙见)。

于 2012-03-01T17:13:21.300 回答