我已阅读此blog:它解释了数据库初始化程序种子和迁移种子方法之间的区别。
我正在开发一个项目,它使用代码优先的实体框架,并启用了迁移。存在Database Initializer种子,它将在创建数据库时在我的本地数据库上执行。
但在生产环境中,我无权自行添加数据库。我需要在一个空的新创建的数据库上从包管理器控制台运行update-database -script,然后手动执行迁移。
由于我没有从开发环境直接访问生产数据库服务器,所以我大声思考:将数据库初始化程序重写为迁移种子没有任何好处。
如何获取脚本(SQL),即在Database Initializer种子方法中定义的insert语句?
我当然可以:
在两个数据库之间进行SQL比较并以这种方式获取INSERT查询。
但是应该有一种更简单的方法吗?
为什么update-database -script
首先不显示数据库初始化程序种子方法中的INSERT语句?
答案 0 :(得分:1)
我不确定Entity Framework Logging and Intercepting Database Operations中描述的日志记录是否会从DatabaseInitializer中捕获SQL。如果没有,您可以尝试找到第三方分析器来捕获您的SQL。就个人而言,我使用ORM Profiler并且它会捕获所有内容,但它并不是免费的。
是的,应该有一种更简单的方法。