DataGrip 2025.2 Help

修改数据库对象的源代码

DataGrip 会跟踪您对在数据库中存储其源代码的对象所做的更改。 这些对象可能是触发器、过程、函数、视图或其他对象。 您在编辑器中对这些对象所做的每一个修改都会保存为对象源代码的本地版本。

更新源代码

DataGrip 在内省过程中检索有关数据库的信息。 此信息用于在 数据库资源管理器 中显示对象、显示其 DDL、在代码补全期间建议它们以及其他代码辅助功能中。

您可以通过编辑数据库对象的 DDL 并提交更改来直接更新源代码。 IDE 将生成迁移脚本并在数据库中执行。

数据库更改 工具窗口显示您所有更改的摘要。

为数据源加载源代码

DataGrip 在内省过程中检索数据源的源代码。 您可以在数据源属性中管理此过程。

  1. 通过以下任一方式打开数据源属性:

    • 请导航至 文件(F) | 数据源

    • 数据库资源管理器⌘ 1 )工具栏上,单击 数据源图标数据源

    • 请按 Ctrl+Alt+Shift+S.

    打开数据源和驱动程序对话框
  2. 请选择您想要下载源代码的一个或多个数据源。

  3. 右键点击选择内容并导航到 加载源。 您可以在以下选项之间进行选择:

    • :请勿下载源代码。

    • 系统架构除外 :下载所有对象的源代码,除了系统模式。

    • 所有架构 :下载所有可用的源代码。

    为数据源加载源代码

编辑对象的源代码

您可以通过直接编辑数据库对象的 DDL CREATE 脚本并在编辑器中提交更改来更新源代码。 IDE 将生成一个包含您更改的迁移脚本,提示您进行验证,然后在数据库中执行该脚本。

  1. 右键点击一个对象,然后选择 导航 | 转到DDL。 或者按 Ctrl+B

  2. 对源代码进行更改。

  3. (可选)在 数据库更改 工具窗口 视图(V) | 工具窗口(T) | 数据库更改 中,双击修改过的对象以打开"差异查看器"并验证您的更改。

  4. 点击 提交 按钮(提交按钮)。

    当您在 数据库更改 工具窗口中点击 提交 按钮 (提交按钮) 时,您会看到 迁移 对话框。 迁移 对话框显示对象的迁移脚本。

  5. 对象迁移 对话框中,确认迁移脚本正确,然后点击 确定

    迁移脚本是更改整个数据库或其部分的代码。 您可以使用迁移脚本来添加或删除列、升级数据库版本或更改列属性。

    DataGrip 可以自动生成迁移脚本,但您需要在运行之前检查它。

查看源代码中的所有更改

  • 从主菜单中选择 视图(V) | 工具窗口(T) | 数据库更改

    数据库变更工具窗口

查看修改版本和存储版本之间的差异

  • 当您编辑任何对象的源代码时,DataGrip 会跟踪更改并在边栏中突出显示它们。 例如,添加一行注释到例程或触发函数。 添加的行会高亮显示。 如果您点击装订区域高亮的行,将显示带有 显示行的差异 按钮的小工具栏。 您可以点击 显示行的差异 按钮(显示差异图标 )查看您添加的代码与源代码之间的区别。

    IDE 突出显示源代码中的更改
  • 数据库更改 工具窗口(视图(V) | 工具窗口(T) | 数据库更改 )中,双击修改后的对象以打开 差异查看器 并验证您的更改。

    数据库变更工具窗口

过时的缓存对象

DataGrip 会缓存数据库中所有对象的源代码,以提供快速的编码支持和导航功能。 如果您打开的对象已从第三方位置更新,您会看到一条通知,提示缓存的对象与数据库中相同对象的源代码不同。

过时的缓存对象

如果您在 IDE 中看到此警告,您可以选择以下操作:

  • 同步 :从数据库提取更改并更新缓存的本地对象。

  • 禁用检查 :禁用此通知。

此外,您的对象源代码版本和数据库中的版本之间可能存在冲突。 例如,当您修改了与其他人相同的源代码并按下 提交Ctrl+K)。

过时的缓存对象

您可以强制替换数据库中对象的源代码(强制重构 ),或者同步对象状态然后继续更改(中止重构并同步)。

如果您选择了 中止重构并同步 ,DataGrip 会停止提交操作并从数据库获取更改(类似于按下 同步 Ctrl+F5)。 如果冲突仍然存在,您将看到以下通知。

过时的缓存对象

在此通知中,您可以在以下选项之间进行选择:

  • 还原本地更改 :回滚所有更改并用数据库中的版本替换它们。

  • 保留本地更改 :使用您的更改并覆盖数据库中的更改。

  • 合并 :显示差异对话框以合并对象源代码的两个版本。

    过时的缓存对象

对象状态的颜色

默认情况下,所有对象都以黑色显示。 这意味着对象源代码的当前状态与服务器上相同对象的源代码没有差异。

如果对象的源代码已更改,但与服务器上对象源代码没有冲突,则对象以蓝色显示。

如果本地对象的源代码与服务器上相同对象的源代码存在冲突,则对象以红色显示。 如果您在编辑器中打开这样的对象,您会看到关于冲突的通知。

例如,在下列截图中, get_customer_balance 函数被修改但没有冲突, film_in_stock 函数被修改并且与服务器上相同函数的源代码冲突,其他对象没有被修改。

数据库对象的颜色
最后修改日期: 2025年 9月 26日