首页 > 解决方案 > 如何实现 PostgreSQL 数据库的架构迁移

问题描述

我需要为 PostgreSQL 实现模式迁移机制。只是为了消除歧义:对于模式迁移,我的意思是我需要将我的数据库结构升级到最新版本,而不管它们在特定服务器实例上的当前状态如何。

例如,在版本一中我创建了一些表,然后在版本二中我重命名了一些列,在版本三中我删除了一个表并创建了另一个。我有多个服务器,在其中一些服务器上我有版本一,一些版本三等。

我的想法:

pg_dump --schema-only

每次在我更改数据库架构之前。这将是一种可靠的方式来识别将来应该应用补丁的数据库版本。

您能否指出这种方法的任何弱点?

标签: postgresqlschema-migration

解决方案


你听说过https://pgmodeler.io吗?在我工作的公司,我们决定这样做,因为它甚至可以在本地和远程之间执行模式差异。我们对此非常满意。

否则,如果您更喜欢免费的解决方案,您可以开发一个迁移工具,该工具可用于应用您存储在单个存储库中的迁移。此外,该工具可以依赖于migration您保存在单独模式中的表,以便您的数据库始终知道应用了哪些迁移。

这种方法的美妙之处在于,迁移既可以涉及架构更改,也可以涉及数据更改。

我希望这能给你一些想法。


推荐阅读