PostgreSQL架构版本控制工具

pgv的Python项目详细描述


travis-ci.org status

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获取给定日期范围内的日期列表?   处理多个同名XML条目的java Apache配置   java Jersey如何确定应用程序的基本URI?   用于错误报告的java连续屏幕记录   使用字符串对象的锁进行同步的java线程并发   正则表达式从Java中的字符串文本中提取重复模式集   java可以成为Liferay V6。0.6可以使用Maven构建系统编写吗?   JavaSpring和Hibernate上的java句柄软删除   java/cplex约束的线性化   java如何在Spring+JSP中查看发送请求和获取响应之间的时间差   ArrayQue对象的2d字符数组的java维度   ssl无法使用任何java技术从internet提取数据。网SocketException:java。安全NoSuchAlgorithmException   java如何检查应用程序是否第一次启动   java使用log4j通过SMTPAppender发送电子邮件报告