2011-04-23 100 views
1

有没有什么方法可以使生产数据库上的数据迁移不与SQL一起使用?生产数据库上的数据迁移

我们正在使用MigratorDotNet,当我们为改变数据库方案的应用程序构建新的功能性时,我们需要做一些数据更新,因此我们必须执行这些复杂且麻烦的SQL语句,以便数据在生产。

想知道是否有另一种方式来做到这一点,有什么最好的做法呢?任何其他可能的解决方案的想法

我们不能使用像NHibernate这样的东西,因为那么当方案改变时我们必须不断修正旧的迁移,并且这可能容易出错。

回答

1

诀窍是使用您的迁移工具并将所述数据操作语句折叠到迁移中。我们通常对一些项目使用相同事物的扩展版本,并且它绝对可以处理这个技巧。

+0

这就是我们正在做的事情,我们发现的缺点是我们设法使用Nhibernate ORM来构建项目,因此我们不必直接使用StoredProcedures或Sql Statements处理ADO .net,而是在迁移似乎没有其他方法可以在不使用SQL的情况下迁移数据操作语句,因为如果我们使用nhibernate,我们会发现当方案更改时映射更改,我们需要返回并修复可能无法使用的旧迁移新的映射。 – user722011 2011-04-24 14:58:47

+0

我明白你在说什么,但这是饼干崩溃的方式 - 在处理内部管道(nhibernate)之前,你需要照顾基础(RDBMS)。 – 2011-04-24 15:14:16

+0

好吧,非常感谢您的回答,我们将继续在migrator内部进行数据处理,正如您所说的。 谢谢 – user722011 2011-04-24 16:13:51

0

如果您已经在使用像Migrator.NET这样的迁移工具,那么我会说你是最关键的。复杂的模式/数据更改只是RDBMS世界中的一个事实。

0

尝试螨。它可以让你做任何你可以用sql做的事情,并使用sql来做到这一点,但有能力确保你的数据库处于期望的版本,而不会冒险执行已经运行的脚本(或错过脚本),离开你的数据库处于一致的状态。

如果你的开发者采用这个。部署是一个简单的mite update,然后您知道问题与产品相关或与数据相关(但与架构无关)。

https://github.com/soitgoes/mite

让我知道你在想什么。我开发了这个,并且多年来一直与我的团队一起使用,取得了巨大的成功。