【发布时间】:2017-05-11 22:02:57
【问题描述】:
我已阅读此blog:它解释了数据库初始化程序种子和迁移种子方法之间的区别。
我正在开发一个使用代码优先实体框架并启用迁移的项目。存在数据库初始化程序种子,它将在创建数据库时在我的本地数据库上执行。
但是在生产环境中,我没有权限自己添加数据库。我需要在新创建的空数据库上从包管理器控制台运行 update-database -script,然后手动执行迁移。
由于我无法从我的开发环境直接访问生产数据库服务器,因此我在大声思考:将数据库初始化程序重写为迁移种子没有任何好处。
如何获取在 Database Initializer 种子方法中定义的脚本 (SQL),即插入语句?
我当然可以:
- 在现有的空数据库上运行更新数据库。 (不执行种子方法)
- 在不存在的数据库上运行更新数据库。 (执行种子方法)
在 2 个数据库之间进行 SQL 比较并以这种方式获取 INSERT 查询。
但是应该有更简单的方法吧?
为什么update-database -script 首先不显示来自数据库初始化程序种子方法的 INSERT 语句?
【问题讨论】:
标签: c# sql-server entity-framework seeding