有没有办法让生产数据库上的数据迁移不能与SQL一起使用?
我们正在使用MigratorDotNet,当我们为更改数据库方案的应用程序构建新的功能时,我们需要进行一些数据更新,我们必须执行这些复杂且麻烦的SQL语句,以便数据在生产中保持一致。
想知道是否有另一种方法可以做到这一点,这样做的最佳做法是什么?关于其他可能解决方案的任何想法?
我们不能使用像NHibernate这样的东西,因为当方案改变时我们必须不断修复旧的迁移,这可能容易出错。
答案 0 :(得分:1)
诀窍是使用您的迁移工具并将所述数据操作语句折叠到迁移中。我们通常对一些项目使用相同的扩展版本,它肯定可以处理这个技巧。
答案 1 :(得分:0)
如果您已经在使用像Migrator.NET这样的迁移工具,那么我会说你大部分都在这里。复杂的模式/数据更改只是RDBMS世界中的一个事实。
答案 2 :(得分:0)
试试螨虫。它让你做任何你可以用sql做的事情并使用sql来做它但能够确保你的数据库在所需的版本上,而不是冒险执行已经运行(或错过脚本)的脚本,留下你的数据库处于一致的状态。
如果您的开发人员采用此方法。部署是一个简单的mite update
然后您就知道问题与产品相关或与数据相关(但与模式无关)。
https://github.com/soitgoes/mite
让我知道你的想法。我开发了这个并且多年来一直在我的团队中使用它并取得了巨大的成功。