我所从事的项目在数据库级别进行了转换。为了更好,大约40%的SQL布局已被更改。有些专栏被删除,其他专栏被移除。我现在的任务是开发数据迁移策略。
哪些迁移方法,甚至是可用的工具,以便我不必弄清楚每个单独的依赖关系,并在其ID(例如)更改时手动编写密钥更改脚本。
我意识到这个问题有点迟钝和开放,但我认为其他人之前必须这样做,我将不胜感激。
我在MS SQL Server 2008上
@OMG小马 不是迟钝但含糊不清:
好极了。我想这有助于我重新考虑我的要求,至少让它更具体。如何从多个表插入多个表,保持外键建立的关系完好无损?我现在意识到我可以在插入过程中删除ID键约束并在之后重新启用它,但我想我必须弄清楚什么取决于我自己并确保它顺利进行。 我会从那里开始,但如果其他人有其他建议,我会保持开放状态。
答案 0 :(得分:2)
您应该创建一个升级脚本,将当前架构转换为v。下一个架构,应用适当的操作(alter table,select into,update,delete等)。虽然这看起来很乏味,但是唯一可以测试的过程是:从当前数据库的备份开始,应用升级脚本,测试结果数据库是否符合所需的模式。您可以测试和调试升级脚本,直到达到正确性。您可以在实际数据大小上对其进行测试,以便您可以正确估计由于数据大小操作而导致的停机时间。
虽然有可以复制数据或转换架构的工具(如SQL Compare),但我相信将其作为一个开发项目来实现,并且可以重复测试并验证的脚本可交付成果,更加理智的方法。
将来你可以考虑这个upgrade step in your development and start with it,而不是试图在最后挤进它。
答案 1 :(得分:1)
有许多商业工具可以解决这个问题 - >我不会买那个......
我认为你最好的办法是建模代表你数据的域类,并编写读入/序列化到旧/新模式的适配器。
如果您还没有域名模型,则应立即构建一个。
ID会发生变化,理想情况下,它们不应对数据库的用户有任何意义。