IntelliJ IDEA 2025.2 Help

架构比较和迁移

启用 数据库工具与 SQL 插件

此功能依赖于 数据库工具与 SQL 插件,该插件默认情况下在 IntelliJ IDEA 中绑定并启用。 如果相关功能不可用,请确保您没有禁用插件。

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

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

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

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

在迁移对话框中比较结构

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

颜色

描述

项目是新的

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

各项不同

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

要删除的项目

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

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

架构比较

显示对象之间的差异

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

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

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

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

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

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

显示 DDL 变更之间的差异

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

  2. 点击 DDL 差异 选项卡。

    对象属性之间的差异

显示相同项目

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

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

架构迁移

在对象之间迁移更改

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

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

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

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

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

选择要迁移的变更

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

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

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

迁移对话框的控件

图标

工具提示和快捷键

描述

全部展开

全部展开

展开所有折叠的节点。

全部收起

全部收起

折叠所有展开的节点。

交换

交换

将 起始 和 目标 面板互换。

选项

选项

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

    • Never :不添加架构名称。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            已选中

包含更改

应用所选更改。

显示相同对象

显示所有相同的项。

DDL Diff 控制

条目

工具提示与快捷键

描述

上一个差异按钮/“下一处差异”按钮

上一个差异/下一个差异

Shift+F7/F7

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

跳转到源代码按钮

跳转到源

F4

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

并排查看器

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

空白字符

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

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

  • 修整空白 :如果行首和行尾出现空格,请修剪空格(("\t", " "))。

    • 如果两行仅在行尾空白处不同,则认为这些行是相等的。

    • 如果两行有所不同,末尾空格不会在 By word模式中高亮显示。

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

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

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

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

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

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

高亮显示模式

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

可用选项包括:

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

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

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

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

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

  • 不高亮显示 :如果选中了此选项,则差异不会被突出显示。

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

同步滚动

同步滚动

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

设置按钮

设置

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

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

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

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

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

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

  • 注解: 注释更改。

帮助图标

帮助

F1

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

2025年 9月 22日