跳转到主要内容

PostgreSQL选择性数据转储

项目描述

Build status

此工具允许从PostgreSQL数据库中提取数据,其灵活性高于pg_dump等工具。

pg_seldump从YAML文件中读取一个或多个转储定义,并选择要保存的表或其他数据库对象。可以仅提取表的一定列,或仅提取一定记录,或者用不同的表达式替换某些值,例如匿名化数据。

程序输出是一个文本文件,可以使用psql将其恢复到具有完整模式但没有数据(或至少没有冲突数据)的数据库中,例如使用

$ pg_seldump --dsn="dbname=sourcedb" datadump.yaml > dump.sql
...
$ psql -1X --set ON_ERROR_STOP=1 -f dump.sql "dbname=targetdb"

程序用法

用法

pg_seldump [-h] [--version] [--dsn DSN] [--outfile OUTFILE] [--test]
           [-q | -v]
           config [config ...]

Create a selective dump of a PostgreSQL database.

positional arguments:
  config                yaml file describing the data to dump

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --dsn DSN             database connection string [default: '']
  --outfile OUTFILE, -o OUTFILE
                        the file where to save the dump [default: stdout]
  --test                test the configuration to verify it works as expected
  -q, --quiet           talk less
  -v, --verbose         talk more

配置文件必须是包含YAML文件,其中包含一个db_objects条目列表。每个条目可以有

选择器(所有指定的都必须匹配)

  • name:要转储的数据库对象名称

  • names:要转储的数据库对象名称列表或正则表达式

  • schema:要转储的数据库对象模式名称

  • schemas:要转储的数据库对象模式名称列表或正则表达式

  • kind:要匹配的对象类型。可以是

    • 序列

    • 分区表

    • 物化视图

  • 种类:种类的匹配对象列表(如对种类的匹配)

  • adjust_score:调整匹配得分的规则以打破规则平局

数据修改器

  • action:对匹配的对象执行的操作

    • dump:将对象转储到输出(默认操作)

    • skip:不转储对象

    • error:在匹配的情况下引发错误(在创建需要明确提及所有数据库对象的严格描述时很有用)

  • no_columns:要省略的列名列表

  • filter:WHERE条件,仅包括转储中的记录子集

  • replace:从列名到SQL表达式的映射,用于在转储中用其他值替换值

数据库中的对象与配置文件中的规则匹配。每个匹配项都将根据选择器匹配对象的特定性获得一个分数。

  • 名称或名称列表:names:1000

  • 名称正则表达式:names regexp:500

  • 模式或模式列表:schemas:100

  • 模式正则表达式:schemas regexp:50

  • 种类或种类列表:kindkinds:10

具有最高分数的规则将生效。如果有两个规则具有完全相同的分数,程序将报告错误:您可以使用 adjust_score 来打破平局。

项目详情


下载文件

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

源分发

pg_seldump-0.3.1.tar.gz (28.9 kB 查看哈希)

上传时间

构建分发

pg_seldump-0.3.1-py3-none-any.whl (28.1 kB 查看哈希)

上传时间 Python 3

由以下支持