请考虑以下设置:
- 生产数据库
- 开发数据库,对其进行架构更改以启用新功能
新功能的开发完成后,我必须手动更新prod db模式,直到pg_dump --schema-only
两个DB上的相同。此过程容易出错且乏味。
因此,我正在寻找一种可以实现以下目的的工具:
- 显示两个架构(例如
diff
)之间差异的摘要。请注意,我不是在寻找模式的文本差异,而是在寻找可以得出结论的更复杂的工具,例如“表X
具有新列Y
”。 - 自动生成将一种模式转换为另一种模式的SQL代码(如
patch
)
2
而不是进行比较,您应该以受控方式管理迁移脚本。切勿对DBMS进行临时DDL更改,始终将更改放入脚本(存储在版本控制系统中)中,然后应用该脚本。查看诸如Liquibase或
—
Flyway之
@a_horse_with_no_name谢谢。即使采用这种方法,差异/修补程序工具也可以使我的生活更轻松。顺便说一句,我忍不住哼了歌。
—
亚当·马坦
您可以尝试pg_comparator:pgfoundry.org/projects/pg-comparator(尽管我从未使用过)。Liquibase也具有内置的差异,如果我没记错的话,它会以Liquibase变更集的形式发出结果,因此这可能是进行更多受控模式管理的良好起点
—
a_horse_with_no_name 2014年
谢谢。愿意将其发布为答案,以便我可以投票吗?
—
亚当·马坦