我有一个相当大/复杂的数据库,我需要在现场从版本 1 升级到版本 2。架构和重要的数据之间有很多变化。
是的,我知道这应该是版本控制的阿拉: http:
//www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html
但它不是 - 它将是当我完成时。
所以,当前的问题,我面临的选择是要么通过所有提交,要么尝试在两个版本的 db 之间进行差异。到目前为止,我已经尝试过:http:
//opendbiff.codeplex.com/
http://www.sqldelta.com/
http://www.red-gate.com/
但是,它们似乎都无法成功生成模式升级脚本,因为它们不会同时处理数据。当向表添加新键时,这会导致外键违规,因为它引用的表是新的,并且虽然已创建表的架构,但它包含的数据尚未创建。可能是这样,但这需要我使用工具的不同部分,然后将两个脚本混合在一起。
我知道这可能看起来像以下内容的副本:
比较两个 SQL Server 数据库(架构和数据)的最佳工具是什么?
这是我找到我尝试过的大多数现有工具的地方,但到目前为止,我还没有设法让其中任何一个生成一个工作模式迁移脚本(我真的对数据不太在意,但我做到了需要外键所需的数据-这就是我部署旧版本和新版本时的全部区别)。
我期待太多了吗?我应该放弃并开始手动拼接我拥有的东西吗?还是我要完成所有提交并手动创建升级脚本?