我们正在开发一个大型ASP MVC Web应用程序EF6 Code First(100多个实体),我们对迁移有一些疑问。
如果我们在开发但尚未投入生产时启用迁移,我们将最终获得大量迁移文件,因为建议进行小规模迁移。这是一种正确的方法还是应该在应用程序位于任何客户端之前启用DropCreateIfModelChanges进行开发?
此外,我们需要使用应用程序所需的所有客户端使用公共数据来播种数据库,例如国家,州,一些超级用户...... 我们必须在哪里播种这些数据,以便我们始终在每个客户端安装Web应用程序?
我见过几种不同的方法: - 使用AddOrUpdate命令在Migrations Configuration的Seed函数中播种种子数据,但我在某些地方看到这是一种不好的方法。 - 使用Sql在“添加 - 迁移”中播种数据(“INSERT INTO ....”);
提前致谢。
答案 0 :(得分:0)
我通常只使用初始化程序开始开发。有seed method specifically for initializers只在创建数据库时运行,这对security和查找表是理想的。 (迁移初始化程序与每个更新数据库一起运行)。
当我到达不想丢失其他数据的程度时,我会切换到迁移。正如您所提到的,这些可以累积,因此我在部署之前使用Chris's technique进行推广。