【发布时间】:2020-05-11 11:05:31
【问题描述】:
我需要为 PostgreSQL 实现架构迁移机制。 只是为了消除歧义:对于模式迁移,我的意思是我需要将我的数据库结构升级到最新版本,而不管它们在特定服务器实例上的当前状态如何。
例如,在版本一中我创建了一些表,然后在版本二中我重命名了一些列,在版本三中我删除了一个表并创建了另一个。我有多个服务器,在其中一些服务器上我有版本一,一些版本三等。
我的想法:
- 为 生成的输出生成哈希
pg_dump --schema-only
每次在我更改数据库架构之前。这将是一种可靠的方式来确定将来应该应用补丁的数据库版本。
- 包含补丁列表及其应应用的相关哈希值。
- 当我需要升级我的数据库时,我将运行一个应用程序,该应用程序将搜索与当前数据库结构相对应的哈希(通过计算本地数据库的哈希并将其与我拥有的哈希集进行比较)并应用相关的补丁。李>
- 重复直到找不到下一个哈希。
您能否指出这种方法的任何不足之处?
【问题讨论】:
标签: postgresql schema-migration