我有一个相当大且复杂的数据库需要从版本1升级到版本2。在这两个版本之间,模式和数据发生了很多变化。
我知道这应该像这样进行版本控制:
http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html, 但事实并非如此——等我完成后就会这样做。
目前的问题是,我面临两种选择:要么查看所有提交记录,要么尝试在两个版本的数据库之间进行差异比较。到目前为止,我已经尝试过:
http://opendbiff.codeplex.com/
http://www.sqldelta.com/
http://www.red-gate.com/
然而,它们似乎都无法成功生成模式升级脚本,因为它们不会同时处理数据。这会导致在向表添加新键时出现外键违规,因为它引用的表是新的,虽然该表的模式已经创建,但其中包含的数据并没有。它可以,但这需要我使用工具的不同部分,然后将两个脚本混合在一起。
我知道这可能看起来像是重复的:
What is best tool to compare two SQL Server databases (schema and data)? 这是我找到大多数现有工具的地方,但到目前为止,我还没有成功地获得任何一个可以生成可用的模式迁移脚本的工具(我真的不太关心数据,但我确实需要外键所需的数据——这就是我部署旧版本和新版本之间所有的区别)。
我期望过高吗?
我应该放弃并开始手动拼接我已经有的内容吗?
还是我要查看所有提交记录并手动创建升级脚本?
我知道这应该像这样进行版本控制:
http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html, 但事实并非如此——等我完成后就会这样做。
目前的问题是,我面临两种选择:要么查看所有提交记录,要么尝试在两个版本的数据库之间进行差异比较。到目前为止,我已经尝试过:
http://opendbiff.codeplex.com/
http://www.sqldelta.com/
http://www.red-gate.com/
然而,它们似乎都无法成功生成模式升级脚本,因为它们不会同时处理数据。这会导致在向表添加新键时出现外键违规,因为它引用的表是新的,虽然该表的模式已经创建,但其中包含的数据并没有。它可以,但这需要我使用工具的不同部分,然后将两个脚本混合在一起。
我知道这可能看起来像是重复的:
What is best tool to compare two SQL Server databases (schema and data)? 这是我找到大多数现有工具的地方,但到目前为止,我还没有成功地获得任何一个可以生成可用的模式迁移脚本的工具(我真的不太关心数据,但我确实需要外键所需的数据——这就是我部署旧版本和新版本之间所有的区别)。
我期望过高吗?
我应该放弃并开始手动拼接我已经有的内容吗?
还是我要查看所有提交记录并手动创建升级脚本?