我正在考虑在生产站点中使用 Entity Framework 4.3 迁移。以下是我的担忧:
如果迁移由于某种原因而失败,我希望所有语句都回滚并将站点置于关闭状态,以便在我尝试解决问题时没有用户可以使用该站点。唯一的事情是我不能回退到手动对数据库执行脚本,因为迁移文件是在程序集中编译的。我可以分别跟踪迁移文件和 sql 脚本文件,但那时为什么要使用迁移。
在工作中,脚本文件存储在站点上的 SQL 文件夹(任何人都无法浏览)中。以前运行的脚本文件在数据库中注册。当新的脚本文件出现在文件夹中(并且不在数据库中)时,如果用户是管理员,他们将被重定向到数据库门户,否则会获得站点关闭以进行维护。如果我们尝试从门户执行任何脚本但失败,我们会抓取新脚本并尝试在 express Studio 内手动运行它们。这已经工作了十多年。我只是在探索迁移,看看是否有更好的方法出现。感觉不像。请让我知道是否有更好的方法,如果不是迁移,那是什么。