0

目标是构建一个简洁的 SQL 脚本来更改/更新表,因为在任何两个时间点之间对模式进行了更改。

例如,我在一台机器上进行开发,在“A”天,我使用转储和恢复实用程序在生产机器上安装数据库。然后在“B”天,在我的开发机器上进行一些更改并测试它们之后,我需要将这些对我的架构的更改放到我的生产服务器上。

没有写下我对我的模式所做的每一个命令(其中一些可能是实验性的和撤消的),管理从 A 点到 B 点(或 B 点到 F 点)升级模式的好方法是什么?

更新:

似乎有充分的理由不赞成类似 diff 的数据库概念。所以这给我留下了新的问题。

  1. 有什么简单的方法可以将实验性更改与生产价值更改区分开来?当您做一些不利的事情时,只是继续将您的开发数据库恢复到最后一个已知的良好状态?

  2. 可以将 postgresql 配置为以一种可以作为更新脚本使用的方式记录您的所有操作吗?我问的原因是我喜欢使用 PgAdminIII,我宁愿用它来工作,也不愿编写用于构建或试验的更新脚本。

4

1 回答 1

3

没有写下我对我的模式所做的每一个命令

如果您想以受控且“专业”的方式进行操作,则无法解决。您应该考虑使用模式管理工具来帮助您组织和运行这些迁移脚本:

我们对 Liquibase 的体验非常好。我们将它用于 Oracle、DB2 和 PostgreSQL 上的迁移。

对于 Postgres 特定的解决方案,您可能想看看Sqitch

于 2012-07-27T18:16:45.370 回答