sql - 数据库模式不同步——需要在不丢失数据的情况下保持最新

标签 sql database sql-server-2008 schema migration

问题:我们有一个应用程序,它的一部分仅供一小部分用户使用,而该应用程序的那部分也在单独的数据库中运行。在一个完美的世界中,两个数据库的模式应该是同步的,但事实并非如此。一些迁移已在较小的数据库上运行,大多数没有;此外,没有诸如修订号之类的东西可以轻松识别哪些有哪些没有。我们希望为 future 的项目解决这个难题。在讨论中,我们提出了以下可能的行动计划,我想知道是否有人知道已经解决了这个问题的任何项目:

我们想要做的是从大型完全迁移数据库的模式创建一个空数据库,然后将所有数据从较小的未迁移数据库移动到该空数据库中。如果它使事情变得更容易,那么可以假设因为这个问题特别是没有迁移删除任何东西,只是添加了。

否则,如果还有其他已知的解决方案,我也想听听。

最佳答案

您可以使用模式比较工具,例如 Red-Gate 的 SQL Compare .您可以同步更改而不会丢失任何数据。我在这里写了关于这个和许多价格广泛的替代工具:

http://bertrandaaron.wordpress.com/2012/04/20/re-blog-the-cost-of-reinventing-the-wheel/

好处是大多数工具都有试用版。因此,您可以试用 14 天(功能齐全),只有在满足您的期望时才购买。我不能代表其他工具,但我已经使用 RG 多年,它是一个非常强大和可靠的工具。

(更新于 2012-06-23 以帮助防止链接失效。)

关于sql - 数据库模式不同步——需要在不丢失数据的情况下保持最新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2404683/

相关文章:

sql - SQL查询确定状态?

database - 推荐几个好的sybase数据库表查看器

sql-server-2008 - 从某个开始日期开始按工作日数计算日期

sql - 如何在 postgres 9.5 中正确执行 upsert

mysql - 按周列出选项变化

sql-server - 如何在 unpivot 之前重命名列?数据库服务器

android - 使用 run-as 从内部存储中检索数据库或任何其他文件

SQL 自然连接多个表(包括空值)

sql-server - SQL Server NTILE - 不同四分位中的相同值

Mysql多对多关系获取 'and'和 'not'数据的数据