数据库模式差异 GSoC 2010

来自 PostgreSQL wiki
跳转到导航跳转到搜索

摘要

这个想法是增强 **pgAdmin**,它将为用户提供一个直观的图形比较器和同步功能。用户可以知道两个选定数据库(对象)之间的差异,这将使用户能够在将(同步)观察到的差异应用于源/目标数据库或两端之前,可视化比较(结构)。此功能将增强开发人员/DBA 的能力,不仅可以通过几次点击将所有更改应用于生产环境,而且可以确定对目标数据库的影响。用户还可以应用选择性更改。这将使用户摆脱现有数据脚本创建和应用方式,该方式既繁琐又无聊,而且灵活性较差。

项目范围

  对于 GSoC 项目,我将范围限制为仅针对单向比较/同步(源到目标/目标到源)以及可视化功能进行工作。我将查找模式差异的 PostgreSQL 对象包括表(约束(主键、外键、非空、唯一索引))和视图。

项目详情

增强功能将具有以下功能。

  • 此功能将首先向用户询问用于对不同数据库服务器进行身份验证的详细信息。
  • 此功能仅在用户至少连接到单个源时才起作用。在此之前,该功能的图标将保持灰色。
  • 当用户使用 pgAdmin 的内置功能连接到任何 PostgreSQL 服务器时,同步功能图标将被启用。
  • 当用户点击图标时,该功能将显示一个树视图,其中包含 pgAdmin 中所有已注册的服务器(已连接/已断开连接),并要求用户选择远程/目标服务器。 http://sites.google.com/site/loaderboot/ideasscreenshots(见图 1)
  • 如果服务器处于断开连接状态,该功能会弹出一个对话框,要求用户输入用户名或密码以连接到服务器,并最终选择目标服务器。 http://sites.google.com/site/loaderboot/ideasscreenshots(见图 2)
  • 这最终将对用户进行身份验证,并且现在将可以选择他/她的数据库。
  • 选择数据库后,用户将获得一个拆分视图窗格,每个窗格都具有树状结构。拆分视图的左侧窗格将显示任何一个源数据库,而右侧窗格将显示另一个数据库。 http://sites.google.com/site/loaderboot/ideasscreenshots(见图 3)
  • 该树将填充数据库的表。
  • 点击任何表时,如果两侧都存在两个表,它们将被选中,并且两个图像图标将显示在 GUI 的下部,以显示结构差异的类型。
  • 每个图像(结构)都将有相应的按钮来查看或应用所选更改。在底部有一个名为“全部同步”的按钮,只需点击一下即可使两个数据库同步。
  • 现在,如果用户点击结构按钮/图像图标,将弹出一个新窗口,显示两个结构之间的差异。
  • 此结构更改窗口将显示模式作为网格,并使用各种颜色突出显示其更改,例如绿色 = 添加了属性,红色 = 删除了属性,黄色 = 其他更改对应于更改的数据类型、索引等。 http://sites.google.com/site/loaderboot/ideasscreenshots(见图 4)
  • 此窗口将显示三种类型的视图,一种用于源同步,一种用于目标同步,一种用于两端,每个视图都有相应的应用按钮。
  • 当用户按下应用按钮时,可视化工具将报告任何冲突,并要求用户解决冲突。随着各种冲突的解决,渲染器将更改可视化效果以支持结果。
  • 最后,当同步成功完成时,用户将收到通知,显示表之间没有差异或冲突。
  • 类似地,会为视图差异弹出一个新窗口。