伙计我需要比较在PostgreSQL中运行的2个不同的数据库。我想使用一些工具以自动方式提取图表,我尝试过pgadmin3和pgdesigner,但它们似乎与我正在使用的postgre不兼容。我可以使用哪种工具来完成这项工作?
编辑1: 由于不兼容,我的意思是他们甚至无法打开我拥有的数据库,因为它们太新了。
编辑2:我可以打开两个转储,新旧版本,实际上我确实有.sql形式我觉得你提供的两个工具都可以解决问题。我将在工作中测试他们tommorow并在这里更新。非常感谢。
伙计我需要比较在PostgreSQL中运行的2个不同的数据库。我想使用一些工具以自动方式提取图表,我尝试过pgadmin3和pgdesigner,但它们似乎与我正在使用的postgre不兼容。我可以使用哪种工具来完成这项工作?
编辑1: 由于不兼容,我的意思是他们甚至无法打开我拥有的数据库,因为它们太新了。
编辑2:我可以打开两个转储,新旧版本,实际上我确实有.sql形式我觉得你提供的两个工具都可以解决问题。我将在工作中测试他们tommorow并在这里更新。非常感谢。
Answers:
如果你甚至无法“打开”数据库,那么你几乎无法比较它们。有些工具可以在转储上运行,但是它们需要转储符合预期的格式,最简单的方法是加载服务器并执行转储。
您 必须 首先能够为每个数据库启动数据库服务器。读取PostgreSQL数据库的唯一方法是通过PostgreSQL数据库服务器。
目前尚不清楚数据库的形式,您没有指定。
如果它们是转储,只需为转储安装足够新的PostgreSQL并将它们恢复到新安装。使用单独的机器或只是将旧Pg与旧Pg一起安装。你没有提到你的平台,操作系统/版本等,所以我无法进一步帮助你。
如果它们是PostgreSQL数据目录的副本,并且已从停止的服务器中正确获取,则必须获取 相同 上的版本(不是更新,不老) 相同的OS和架构 并从数据库启动服务器。因此,如果数据库来自(例如)32位Windows PostgreSQL 9.2,则需要在Windows上使用32位PostgreSQL 9.2来加载数据库,其他任何事情都不会。使用启动服务器 pg_ctl
。
一旦您可以连接到两台服务器,您就可以使用现有工具来比较两个DB。当我找到映射DB结构时 SchemaSpy 非常有用。为了比较考虑 apgdiff ;这将适用于转储,但要求转储格式正确。