WebStorm 2025.2 Help

修改数据库对象的源代码

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

更新源代码

WebStorm 会在执行内省时检索数据库的信息。 此信息用于在 数据库 工具窗口中显示对象、展示其 DDL、在代码补全时提供建议,以及其他编码辅助功能中使用。

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

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

为数据源加载源代码

WebStorm 会在执行内省时检索数据源的源代码。 您可以在数据源属性中管理此过程。

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

    • 数据库 工具窗口工具栏中,点击 数据源图标数据源

    • 按下 Shift+Enter

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

  3. 右键点击所选内容并导航至 加载源。 您可以选择以下选项之一:

    • :不下载源代码。

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

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

    为数据源加载源代码

编辑对象的源代码

您可以通过在编辑器中直接编辑 DDL CREATE 脚本并提交更改来更新数据库对象的源代码。 IDE 会根据您的更改生成迁移脚本,提示您确认该脚本,然后在数据库中执行。

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

  2. 修改源代码。

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

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

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

  5. 对象迁移 对话框中,验证迁移脚本是否正确,然后单击 确定

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

    WebStorm 可以自动生成迁移脚本,但在运行之前须进行检查。

查看源代码中的所有更改

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

    “数据库更改”工具窗口

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

  • 当您编辑任何对象的源代码时,WebStorm 会跟踪更改,并在边距中突出显示。 例如,向常规程序或触发器函数添加注释行。 添加的行会被高亮显示。 如果您在边距中单击高亮行,则会显示带有 显示行的差异 按钮的小型工具栏。 您可以单击 显示行的差异 按钮(显示差异图标 )查看您添加的代码与源代码之间的差异。

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

    “数据库更改”工具窗口

过时的缓存对象

WebStorm 会缓存数据库中所有对象的源代码,以提供快速的编码辅助功能与导航功能。 如果您打开的对象已在第三方位置更新,则会显示通知,提示缓存对象与数据库中该对象的源代码不一致。

过时的缓存对象

在 IDE 中看到此警告时,您可以从以下操作中进行选择:

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

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

此外,您版本的对象源代码可能与数据库中的版本存在冲突。 例如,您与他人修改了相同的源代码并按下 提交Ctrl+K )时会发生此情况。

过时的缓存对象

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

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

过时的缓存对象

在该通知中,您可以从以下选项中进行选择:

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

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

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

    过时的缓存对象

对象状态的颜色

默认情况下,所有对象均以黑色显示。 这表示当前对象源代码的状态与服务器上相同对象的源代码一致。

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

如果本地对象与服务器上相应对象的源代码存在冲突,则该对象以红色显示。 如果您在编辑器中打开此类对象,将看到有关冲突的通知。

例如,在以下截图中, get_customer_balance 函数已修改但无冲突, film_in_stock 函数已修改且与服务器上相同函数的源代码存在冲突,其他对象未修改。

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