【发布时间】:2015-03-13 17:03:54
【问题描述】:
我正在考虑在生产站点中使用 Entity Framework 4.3 迁移。以下是我关心的问题:
如果迁移由于某种原因失败,我想要所有语句 回滚并且站点处于关闭状态,因此没有用户可以使用 网站,而我尝试解决问题。唯一的问题是我做不到 回退到手动对数据库执行脚本,因为 迁移文件在程序集中编译。我可以跟踪 迁移文件和 sql 脚本文件都是分开的,但那时为什么要使用 完全迁移。
在工作中,脚本文件存储在站点上的 SQL 文件夹(任何人都无法浏览)中。以前运行的脚本文件在数据库中注册。当新的脚本文件出现在文件夹中(并且不在数据库中)时,如果用户是管理员,他们将被重定向到数据库门户,否则会获得站点关闭以进行维护。如果我们尝试从门户执行任何脚本但失败,我们会获取新脚本并尝试在 express studio 内手动运行它们。这已经工作了十多年。我只是在探索迁移,看看是否有更好的方法出现。感觉不像。请让我知道是否有更好的方法,如果不是迁移,那是什么。
【问题讨论】:
-
有什么理由不先在生产数据库的副本上运行脚本?
-
感谢您的评论。我一直在研究开发和部署软件的更好方法。在我开始研究持续集成和持续部署之前,我问了这个问题。现在我知道我不知道我在说什么(可能仍然不知道)。你是对的,我会部署到测试数据库并确保脚本在部署到生产之前是正确的。在部署到生产环境时,脚本的正确性不应该是我关心的问题;那时一切都应该是“正确的”。
标签: entity-framework-4 database-migration entity-framework-migrations