PyCharm 2025.3 Help

架构比较与迁移

启用 数据库工具和 SQL 插件

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

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

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

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

迁移 是将结构和更改从一个对象传输到另一个对象的过程(例如,从一个架构到另一个架构)。 在 PyCharm 中,这些对象分别称为 起始目标。 会生成迁移脚本,使 目标起始 相同。 但您可以根据需求修改脚本。

在迁移对话框中比较结构

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

颜色

说明

新建的项

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

有差异的项

已修改的对象,将在 目标 中更改。

要删除的项

起始 中删除的对象,若迁移成功,将在 目标 中删除。

请参阅 参考部分 中的对话框控件说明。

架构比较

显示对象之间的差异

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

  2. 右键点击所选内容,然后选择 比较结构。 或者,按 Ctrl+D

    迁移对话框中的对象差异

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

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

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

在 DDL 中显示更改的差异

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

  2. 点击 DDL 差异 选项卡。

    对象属性差异

显示相同的项

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

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

架构迁移

在对象之间迁移更改

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

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

    会在 脚本预览 选项卡中生成一组可用于编写迁移脚本的语句。

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

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

选择要迁移的更改

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

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

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

迁移对话框的控件

图标

工具提示和快捷键

说明

全部展开

全部展开

展开所有已折叠的节点。

全部折叠

全部收起

折叠所有已展开的节点。

交换

交换

交换 起始目标 面板。

选项

选项

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

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

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

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

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

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

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

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

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

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

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

  • 跳过授权 :不为权限生成 GRANT 语句。

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

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

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

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

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

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

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

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

已选择

包含更改

应用所选更改。

显示相同对象

显示所有相同的项。

DDL 差异的控件

工具提示和快捷键

说明

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

上一个差异/下一个差异

Shift+F7/F7

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

跳转到源按钮

跳转到源

F4

在编辑器的活动窗格中打开所选对象的定义。 插入符号会放置在与 差异查看器 中相同的位置。

并排查看器

选择查看器模式: 并排查看器统一查看器。 并排模式包含两个面板,统一模式包含一个面板。

空白字符

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

  • 不忽略 :空白字符很重要,所有差异都会高亮显示。 默认选中此选项。

  • 修整空白 :如果空白字符出现在行的末尾或开头,则将其修剪(("\t", " "))。

    • 如果两行仅在行末空白字符上有所不同,则认为这两行相同。

    • 如果两行不同,则在 按单词 模式下不会高亮显示行末空白字符。

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

  • 忽略空格和空行 :忽略空白字符和空行。 将忽略以下实体:

    • 所有空白字符(与 忽略空格 选项相同)

    • 所有仅由空白字符组成的已添加或已删除的行

    • 在不更改非空白部分的情况下拆分或合并行的所有更改。

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

高亮显示模式

选择差异的高亮方式。

可用选项包括:

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

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

  • 高亮显示拆分的更改 :如果选择此选项,将把较大的更改拆分为较小的更改。

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

  • 高亮显示符号 :高亮显示已修改的字符

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

    处理更改幅度较大的对象时,请使用 不高亮显示 选项。 在此类情况下,高亮显示可能会给审阅带来额外的困难。

同步滚动

同步滚动

同步左侧和右侧窗格中的滚动。

设置按钮

设置

选择您希望在比较期间忽略的选项。

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

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

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

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

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

  • 注解注解 更改。

帮助图标

帮助

F1

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

最后修改日期: 2025年 12月 2日