跳转到主要内容

PostgreSQL工具

项目描述

master branch build status BSD 3 Clause license Latest release on PyPI Number of downloads Source code formatted using Black Change log

此包包含两个用于备份PostgreSQL数据库转储的工具。

安装

在虚拟环境或以超级用户全局安装

pip install pgtricks

仅对当前用户安装

pip install --user pgtricks

pg_dump_splitsort

pg_dump_splitsort 是一个方便的脚本,用于预处理PostgreSQL的 pg_dump 输出,使其更适合进行差异比较和存储在版本控制中。

使用方法

pg_dump_splitsort <filename>.sql

该脚本将转储分割成以下文件

0000_prologue.sql:第一个COPY之前的所有内容
0001_<schema>.<table>.sql
:
:
NNNN_<schema>.<table>.sql:每个表的COPY数据 按第一个字段排序
9999_epilogue.sql:最后一个COPY之后的所有内容

表数据文件按编号,可以简单地使用所有文件的排序连接来重新创建数据库

$ cat *.sql | psql <database>

我发现,使用 meld 工具查看转储之间的差异的好方法是查看整个目录

$ meld old-dump/ new-dump/

将转储存储在版本控制中也可以提供对差异的合理视图。以下是如何配置git以在差异中使用颜色

# ~/.gitconfig
[color]
        diff = true
[color "diff"]
        frag = white blue bold
        meta = white green bold
        commit = white red bold

注意:如果您已创建/删除/重命名表,请记住在处理新的转储之前删除所有 .sql 文件。

pg_incremental_backup

pg_incremental_backup 脚本

  • 使用 pg_dump 创建数据库转储

  • 使用 pg_dump_splitsort 将转储分割为每个表的文件

  • 将更改创建或提交到包含转储的本地 Git 仓库

  • 将更改推送到远程仓库

使用方法

pg_incremental_backup [-h] [--output-dir OUTPUT_DIR] database [remote]

positional arguments:
  database
  remote

optional arguments:
  -h, --help            show this help message and exit
  --output-dir OUTPUT_DIR, -o OUTPUT_DIR

贡献者 ✨

有关贡献者列表,请参阅 README.rst

本项目遵循 all-contributors 规范。欢迎各种形式的贡献!

GitHub 星星趋势

stargazers

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

pgtricks-1.1.0.tar.gz (13.0 kB 查看哈希值)

上传时间

构建分布

pgtricks-1.1.0-py3-none-any.whl (10.4 kB 查看哈希值)

上传时间 Python 3

由以下支持