PG 数据库结构比对工具 pgquarrel

0    505    2

Tags:

👉 本文共约2084个字,系统预计阅读时间或需8分钟。

简介

官网:

https://github.com/eulerto/pgquarrel

http://eulerto.github.io/pgquarrel/

pgquarrel是一个PostgreSQL数据库的数据库结构(DDL)比对工具。它会对比两个数据库源,并输出一个表示DDL差异的文件。 如果将输出文件运行到目标数据库中,它将具有与源数据库相同的结构。 主要使用场景是将数据库更改部署到测试或生产环境。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

pgquarrel不依赖于另一个工具(如pg_dump),而是直接连接到 PostgreSQL 服务器,从目录中获取元数据,比较对象并输出将目标数据库转换为源数据库所需的命令。它拥有过滤器选项:所以,可以比较部分对象。

它可以适用于不同的PostgreSQL版本。如果源PostgreSQL 版本大于目标PostgreSQL版本,生成的文件无法按预期工作。这是因为该工具会生成以前 PostgreSQL 版本中不存在的命令,在低版本中却不能应用。 适用于不同的操作系统,例如Linux, FreeBSD, 和 Windows。

pgquarrel源码包可以在GitHub下载:https://github.com/eulerto/pgquarrel.git

缺点

缺点:pgquarrel不支持所有 Postgresql 对象。

pgquarrel does not support all of the PostgreSQL objects.

ObjectSupportComments
ACCESS METHODcomplete
AGGREGATEpartial
CASTcomplete
COLLATIONpartial
COMMENTpartial
CONVERSIONpartial
DOMAINpartial
EVENT TRIGGERcomplete
EXTENSIONpartial
FUNCTIONpartial
INDEXpartial
LANGUAGEpartial
MATERIALIZED VIEWpartial
RULEcomplete
SCHEMApartial
SEQUENCEpartial
TABLEpartial
TRIGGERcomplete
TYPEpartial
VIEWpartial
GRANTcomplete
REVOKEcomplete
SECURITY LABELpartial
FOREIGN DATA WRAPPERcomplete
FOREIGN TABLEpartial
SERVERcomplete
USER MAPPINGcomplete
TEXT SEARCH CONFIGURATIONpartial
TEXT SEARCH DICTIONARYpartial
TEXT SEARCH PARSERpartial
TEXT SEARCH TEMPLATEpartial
OPERATORpartial
OPERATOR CLASSpartial
OPERATOR FAMILYpartial
PUBLICATIONpartial
SUBSCRIPTIONpartial
POLICYpartial
TRANSFORMcomplete
PROCEDUREpartial
ALTER DEFAULT PRIVILEGESuncertain
ALTER LARGE OBJECTuncertain
STATISTICScomplete

Although pgquarrel does not support all PostgreSQL objects, it covers many of the use cases. In future releases, we expect to implement the TODO items to cover more cases. The main absences are:

  • inheritance;
  • roles.

安装

安装成功后查看工具可添加的选项

示例

使用工具生成对比文件
[pg10@sandata02 pgquarrel]$

示例:

可见,源端多了一张表,其它没有差别。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部