我有基于数据库的应用程序,我删除了架构&每当架构中发生任何更改时,都会生成db内容。现在它处于开发模式。很快我们就会在生产中发布应用程序。但我们怀疑在生产使用中发布应用程序后可能会有很多变化。该软件应安装在全球许多地方。 (不是基于网络的应用程序)
在这种情况下架构迁移工具如何工作?或者我们如何在典型的基于数据库的应用程序中使用它们,我们怀疑模式中的更改?
答案 0 :(得分:5)
下载RedGate工具并查找。我相信它们都有试用期,我确信SQL Compare会这样做。
通常,您将它们指向两个数据库,并列出两者之间的所有差异。您可以将它们配置为忽略某些内容,例如注释,约束名称等。从那里,您可以选择要同步的项目以及在哪个方向上,并且工具将生成脚本供您执行,或者它将使为你而改变。
在您的情况下,您可能会生成脚本,然后将其用作发送给客户的内容或安装脚本中包含的内容的基础。只需为应用程序的每个版本保留一个数据库,然后通过指向两个数据库生成脚本,从一个版本转到另一个版本。您可以将它们保持为空(或者只是填充查找表),这样它们就不会占用太多空间。
您还可以使用SQL数据比较来保持查找表的同步。只是将它用于查找表,而不是实际的主数据表。
无论你走哪条路线,你都要做一些自定义编码,因为你需要在改变结构时或者出于类似的原因转换数据。
答案 1 :(得分:0)
将RoundhousE视为sql迁移工具。
您可以编写将您的架构从当前版本的数据库移动到新版本的迁移,而不是编辑架构创建脚本。 RoundhousE向数据库添加信息以跟踪其当前所在的版本,并根据需要将迁移脚本应用于您的数据库。
我正在研究这些工具,而RoundhousE目前是我的首选。