git 的 PostgreSql 数据库的源代码控制

Source control for PostgreSql Data base with git

我有一个 PostgreSql 数据库,我想将架构保留在源代码管理中。我更喜欢使用 git,因为我所有的代码都在 git 中。 有没有办法做到这一点。 谢谢

您可以使用一些工具将 db 架构的文本表示形式生成到 vcs 下某个文件夹中的文件中。

要查看足够的工作树状态,您需要 运行 在 git status 之前生成架构。

在从远程(git fetch && git rebasegit pull)更新之前,您需要将数据库模式导入到工作树中。
如果该版本与 HEAD 中的最新版本不同,那么您需要在数据库或提交中还原它。
更新后,您需要再次将数据库模式获取到工作树中,检查差异并将其还原到真实数据库中,直到数据库模式获取将生成干净的工作树。

P.S。我在 git 中将此技术用于 MsSql 数据库模式。我什至将数据库数据添加到 repo,这也可能有用。

一般来说,现在做这件事的现代方法是学习使用 propel ORM 或 Doctrine ORM,这将为你的数据库版本并在你提交基本模式时保持结构同步(在 xml 格式)和迁移。

PHP ORMs: Doctrine vs. Propel 有更多关于推进与学说的信息。

嗨,这个问题的未来读者,我是项目#yuniql 的维护者:一个模式版本控制和迁移工具。 yuniql 可以通过在普通目录中组织 DDL 和 DML 脚本、提交到 git 存储库并对 postgresql 数据库执行 gitops 来帮助您维护和保持 postgresql 模式的发展。您可以参考下面的 github 和入门指南 ;)

https://github.com/rdagumampan/yuniql
https://yuniql.io/docs/get-started-postgresql/

Br,罗德尔