PostgreSQL架构版本控制工具
pgv的Python项目详细描述
PostgreSQL架构版本控制工具
pgv是 可用于支持PostgreSQL架构的开源实用程序 在VCS仓库里。
概述
pgv在需要时帮助您:
- 将SQL文件存储在VCS存储库中;
- 跟踪数据库架构的更改;
- 使更改可以应用于各种数据库
- 即使你只能在本地访问它。
安装
您可以使用pip安装pgv:
pip install pgv
使用量
例如,您希望将数据库模式存储在git中 存储库repo.git位于文件夹db中。首先,你需要 初始化存储库:
~: user$ git clone repo.git ~: user$ cd repo repo: user$ pgv init -p db
此命令创建简单的pgv配置pgv.yaml正在工作 目录和文件夹db:
db/ schemas/ scripts/
根据约定,schemas子文件夹应包含 以数据库中所需架构命名的文件夹。里面的文件 目录应该是sql脚本,它描述了 图式。例如,您希望在中创建表foo和函数bar。 架构public:
schemas/ public/ tables/ foo.sql functions/ bar.sql
scripts子文件夹应该包含一些人员脚本:数据修复, 迁移等等。此文件夹中的SQL文件可以包含 定义执行流上的位置。你需要添加脚本 授予对数据库中所有对象的访问权限。它应该被执行 毕竟。
scripts/ grants_post.sql
好的,您要将提交的更改应用于数据库。让我们初始化 信息:
repo: user$ pgv initdb -d test
将更改推送到数据库test:
repo: user$ pgv push -c -d test
例如,您已经对test数据库进行了一些检查,并且您已经理解了 不需要函数bar。让我们跳过它:
repo: user$ pgv show c2d658898d4a1369c20285464bd5bb95713173f6 schemas/public/tables/foo.sql schemas/public/functions/bar.sql scripts/grants_post.sql repo: user$ pgv skip -f schemas/public/functions/bar.sql c2d658898d4a1369c20285464bd5bb95713173f6 repo: user$ git add db/.skiplist repo: user$ git commit repo: user$ pgv show cdfdbfb2bdcf8ee2dbf190bbf3a73ffbd77bd9b3 [s] .skiplist c2d658898d4a1369c20285464bd5bb95713173f6 schemas/public/tables/foo.sql scripts/grants_post.sql
修复后,您希望将更改推送到production,但是数据库 只允许本地连接。让我们用更改包:
repo: user$ pgv collect -o changes-to-prod.tar.gz repo: user$ scp changes-to-prod.tar.gz prod://tmp repo: user$ ssh prod ~: user@prod$ pgv push -i /tmp/changes-to-prod.tar.gz -d prod
测试
要运行测试,请使用:
tox