使用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表呢?还是我们应该把它抽象成某种简介?
我看到了两者的优点和缺点,所以我很想听听其他团队是如何处理这种情况的。
如果您确定所有环境都需要"参考数据",我会亲自将其放在迁移类中,而不是放在概要文件类中。
维护&使用简单的规则,代码理解总是更容易,比如:
配置文件=>特定(测试、其他)数据
迁移=>通用数据
一个特定的配置文件只会增加无用的复杂性(我的观点很谦虚)。