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

本文关键字:最佳 状态 FluentMigrator 添加 代码 使用 | 更新日期: 2023-09-27 18:26:32

我们正在进行一个使用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表呢?还是我们应该把它抽象成某种简介?

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

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

如果您确定所有环境都需要"参考数据",我会亲自将其放在迁移类中,而不是放在概要文件类中。

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

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

迁移=>通用数据

一个特定的配置文件只会增加无用的复杂性(我的观点很谦虚)。