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