我有一个3层架构项目(Web,Service,DataAccess),我只想在POCO发生变化时将数据库迁移到最新版本。我们可以通过调用Application_Start
事件的自动迁移代码来完成此操作。在这种情况下,我的网站中没有DataAccess
项目的引用。那么如何从Application_Start
事件中调用自动迁移代码?
Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configuration>());
我无法从BlogContext
访问Application_Start
。
请帮帮我
提前致谢 [在生产环境中,我们无法通过VS运行update-database命令,所以还有其他方法可以自动更新数据库)
答案 0 :(得分:3)
您应该从迁移生成脚本以在生产中执行。 对我有用的是使用 Update-Database -Script
这会创建一个具有迁移差异的脚本&#39; 您可以手动将其作为SQL脚本应用于目标服务器数据库(并且应该插入正确的迁移表行等)。
就个人而言,我不相信“直播”中的自动更新。方案,我总是喜欢手动数据库管理(即创建或改变Db所需的权限存在问题 - 更不用说共享主机等) - 但是从我所看到的迁移来看,相当于同步(实际上,解开&#39;它们通常的唯一方法是删除Db并强制完全/新的更新)。 希望有所帮助。