【问题标题】:How the schema migration tools work?架构迁移工具如何工作?
【发布时间】:2011-01-04 07:30:42
【问题描述】:

我有基于数据库的应用程序,每当架构发生任何更改时,我都会删除架构和数据库内容。现在它处于开发模式。很快我们就会在生产中发布应用程序。但是我们怀疑在我们将应用程序发布到生产使用之后可能会有很多变化。该软件应安装在全球许多地方。 (不是基于网络的应用)

在这种情况下,架构迁移工具如何工作?或者我们如何在我们怀疑架构更改的典型基于数据库的应用程序中使用它们?

【问题讨论】:

  • 您的应用程序是如何编写的?如果它使用 ORM,您是否研究过该 ORM 的迁移工具?
  • 我们使用Visual Studio或C#自带的linq

标签: sql database installation sql-update schema-migration


【解决方案1】:

下载RedGate 工具并找出答案。我相信他们都有试用期,而且我确信 SQL Compare 有。

通常,您将它们指向两个数据库,它们会列出两者之间的所有差异。您可以将它们配置为忽略某些内容,例如 cmets、约束名称等。从那里您可以选择要同步的项目以及同步的方向,该工具将生成一个脚本供您执行,或者它将使为你改变。

在您的情况下,您可能会生成脚本,然后将其用作您将发送给客户的内容或您将包含在安装脚本中的内容的基础。只需为应用程序的每个版本保留一个数据库,然后您就可以通过指向这两个数据库来生成从一个版本到另一个版本的脚本。您可以将它们留空(或只填充查找表),这样它们就不会占用太多空间。

您还可以使用 SQL 数据比较来保持查找表同步。只是将它用于查找表,而不是实际的主要数据表。

无论你走哪条路,你都必须做一些自定义编码,因为你需要在改变结构的同时转换数据,或者出于类似的原因。

【讨论】:

  • 如果您要投反对票,给出一个理由可能有助于人们做出明智、明智的决定。事实上,没有什么可以告诉人们这个答案是否存在一些只有你知道的固有问题。
【解决方案2】:

RoundhousE 视为 sql 迁移工具。

您无需编辑架构创建脚本,而是编写将架构从当前版本的数据库升级到新版本的迁移。 RoundhouseE 将信息添加到数据库中以跟踪它当前所在的版本,并根据需要将迁移脚本应用到您的数据库。

我正在研究这些工具,RoundhouseE 目前是我的首选。

【讨论】:

    猜你喜欢
    • 2020-12-17
    • 1970-01-01
    • 2021-08-08
    • 2015-07-25
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    相关资源
    最近更新 更多