PyCharm 2025.2 Help

架构比较和迁移

启用 数据库工具和 SQL 插件

此功能依赖于 数据库工具和 SQL 插件,该插件在 PyCharm 中默认捆绑并启用。 如果相关功能不可用,请确保您未禁用该插件。

  1. 按下 Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 已安装 选项卡,找到 数据库工具和 SQL插件,然后选中插件名称旁边的复选框。

在 PyCharm,您可以比较两个相同类型的数据库对象。 例如,您可以比较两个 schema、两个表或两个例程。 可以在不同的服务器上托管包含对象的数据库。 PyCharm 向您显示这两个对象结构的差异,在 迁移 对话框中。

Migration 是将结构和更改从一个对象转移到另一个对象(例如,从一个 schema 转移到另一个 schema )的过程。 在 PyCharm 中,这些对象被称为 起始目标。 迁移脚本已生成,以使 目标 等于 起始。 但是您可以修改脚本以满足您的需求。

在迁移对话框中比较结构

对于更改,PyCharm 使用以下颜色编码。

颜色

描述

项目是新的

成功迁移后,将在 起始 中添加的对象将在 目标 中创建。

各项不同

需修改的对象将在 目标 中被更改。

要删除的项目

起始 删除的对象将在迁移成功的情况下,在 目标 中被删除。

请参阅 参考部分中的对话框控件描述。

架构比较

显示对象之间的差异

  1. 数据库 工具窗口中,选择两个相同类型的对象。 例如,两种模式。

  2. 右键点击选择并选择 与结构比较。 或者,按 Ctrl+D

    迁移对话框中对象之间的差异

以表格形式显示更改之间的差异

  1. 迁移 对话框中,点击 起始目标 字段中的项目。

  2. 点击 对象属性差异 选项卡。

显示 DDL 变更之间的差异

  1. 迁移 对话框中,点击 起始 字段或 目标 字段中的一项。

  2. 点击 DDL 差异 选项卡。

    对象属性之间的差异

显示相同项目

  • 要显示在 起始目标 对象中相同的所有项,请选中 显示相同对象 复选框。

    已启用“显示相同记录”选项
    显示相同记录已禁用

架构迁移

在对象之间迁移更改

  1. 数据库 工具窗口中,选择两个相同类型的对象。 例如,两种模式。

  2. 右键单击所选内容,并在上下文菜单中选择 与结构比较。 或者,按 Ctrl+D

    一组可用于编写迁移脚本的语句将在 脚本预览 标签中生成。

  3. 请在 脚本预览 选项卡中验证迁移脚本是否正确。

  4. 点击 执行。 或者,单击 在控制台中打开查询 以在 查询控制台 中打开所有脚本。

选择要迁移的变更

  • 要排除某个更改,请点击更改旁边的复选框。

  • 若要排除所有更改,请选中 目标 标签旁边的复选框。

  • 要包含所有被排除的更改,请点击 目标 标签旁边的复选框。

迁移对话框的控件

图标

工具提示和快捷键

描述

全部展开

全部展开

展开所有折叠的节点。

全部折叠

全部收起

折叠所有展开的节点。

交换

交换

起始目标 面板互换。

选项

选项

  • 使用架构名称限定对象 :设置何时使用架构名称限定数据库对象。

    • 从不 :不要添加架构名称。

    • Always :为所有对象名称添加架构名称。

    • Auto :当所有对象属于同一架构或当前架构时,省略架构名称。 在大多数情况下,当前架构是用户选择登录的架构。

    此选项仅影响生成的代码,不影响直接从服务器接收的代码。

  • 设置约束 :设置约束的位置。

  • 允许对象重新创建 :如果无法更改,则重新创建对象。

  • 使用代理(自动生成的)名称 :使用作者省略并在服务器端自动生成的名称。

  • 忽略标识符大小写的修改 :忽略标识符大小写的修改。

  • 生成禁用子句或语句 :为当前禁用的元素生成禁用代码。

  • 忽略所有者 :在生成的脚本中忽略对象所有者。

  • 跳过权限 :不要为权限生成授权代码。

  • 在用户定义中显示权限 :重新生成所有可访问对象的授权。

  • 忽略顺序 :忽略列顺序。

  • 重新生成数据库提供的代码 :重新生成数据库作为源代码一部分提供的属性定义。

  • 重新格式化生成的代码 :使用当前代码样式配置文件重新格式化生成的代码。

    此选项仅影响生成的代码,不影响直接从服务器接收的代码。

  • 忽略扩展成员 :忽略来自扩展的对象。

  • 忽略隐式对象 :忽略自动生成的对象。 例如,外键的索引,Microsoft SQL Server 中列默认值的 DEFAULT CONSTRAINT

  • 忽略源代码(S) :忽略函数或过程中的主体内容。 对象是根据它们的种类和身份(例如函数签名)进行匹配的。 如果两者的种类和标识相同,则认为两个函数是相等的。 然后,差异查看器会考虑此选项——是否忽略函数主体。

已选择

包含更改

应用所选更改。

显示相同对象

显示所有相同的项。

DDL Diff 控制

项目

工具提示和快捷键

描述

上一差异按钮/下一个差异按钮

上一个差异/下一个差异

Shift+F7/F7

跳转到下一个或上一个差异。

“跳转到源代码”按钮

跳转到源

F4

在编辑器的活动窗格中打开所选对象的定义。 文本光标的位置与 差异查看器 相同。

并排查看器

请选择查看模式: 并排查看器统一查看器。 并排模式有两个面板,而统一模式只有一个面板。

空白字符

定义 差异查看器 应如何处理空白字符。

  • 不忽略 :空格很重要,所有差异都会被突出显示。 此选项默认情况下会被选中。

  • 修整空白 :如果行首或行尾出现空白字符,则删除这些空白字符(("\t", " "))。

    • 如果两行仅在尾随空格上有所不同,这些行将被视为相等。

    • 如果两行不同,则在 By word模式下,尾随空格不会被高亮显示。

  • 忽略空格 :空白字符并不重要,不论在源代码中的位置。

  • 忽略空格和空行 :忽略空格和空行。 以下实体被忽略:

    • 所有空白字符(如 忽略空格 选项)

    • 所有仅由空格组成的新增或删除行

    • 所有拆分或合并行且不更改非空白部分的更改。

      例如,在此模式下不会突出显示 a b ca \n b c 之间的差异。

高亮模式

选择差异突出显示的方式。

可用选项为:

  • 高亮显示单词 :修改的词语已高亮显示

  • 高亮显示行 :已修改的行已高亮显示

  • 高亮显示拆分的更改 :如果选择此选项,大的更改会被拆分成较小的更改。

    例如, A \n BA X \n B X 会被视为两个更改,而不是一个。

  • 突出显示符号 :修改后的符号已高亮显示

  • 不高亮显示 :如果选择此选项,将不突出显示差异。

    与大幅修改过的对象一起工作时,请使用 不高亮显示 选项。 在这种情况下,高亮显示可能会在审核期间引入额外的困难。

同步滚动

同步滚动

在左窗格和右窗格中同步滚动。

设置按钮

设置

请选择您希望在比较过程中忽略的选项。

  • 显示空白 :在差异查看器中显示空白为点。

  • 显示行号 :在差异查看器中显示行号。

  • 显示缩进参考线 :在差异查看器中显示垂直线以指示缩进的位置。

  • 自动换行 :在调整对话框大小时,换行代码行。

  • 高亮显示级别 :允许您在差异查看器中选择 高亮级别

  • 注释注释更改。

帮助图标

帮助

F1

打开浏览器并显示相应的帮助页面。

最后修改日期: 2025年 9月 26日