修改数据库对象的源代码
启用 数据库工具和 SQL 插件
此功能依赖于 数据库工具和 SQL 插件,该插件在 GoLand 中默认捆绑并启用。 如果相关功能不可用,请确保未禁用该插件。
按下 Ctrl+Alt+S 以打开设置,然后选择 。
打开 已安装 选项卡,找到 数据库工具和 SQL 插件,并选中插件名称旁边的复选框。
GoLand 会跟踪您对存储其源代码于数据库中的对象所做的更改。 这些对象可能是触发器、过程、函数、视图或其他对象。 您在编辑器中对这些对象所做的每一项修改都会保存为该对象源代码的本地版本。
更新源代码
GoLand 会在内省过程中检索有关数据库的信息。 这些信息用于在 数据库 工具窗口中显示对象、展示其 DDL、提供代码补全建议及其他编码辅助功能。
您可以通过编辑数据库对象的 DDL 并提交更改,直接更新其源代码。 IDE 会为数据库中执行的更改生成并执行迁移脚本。
数据库更改 工具窗口会显示您所有更改的摘要。
为数据源加载源代码
GoLand 会在内省期间检索数据源的源代码。 您可以在数据源属性中管理此过程。
通过以下操作之一打开数据源属性:
在 数据库 工具窗口工具栏上,点击
数据源。
按下 Shift+Enter。

选择一个或多个要下载源代码的数据源。
右键点击所选内容并导航至 。 您可以选择以下选项之一:
无 :不下载源代码。
系统架构除外 :下载除系统架构外所有对象的源代码。
所有架构 :下载所有可用的源代码。

编辑对象的源代码
您可以通过在编辑器中直接编辑其 DDL CREATE 脚本并提交更改来更新数据库对象的源代码。 IDE 会使用您的更改生成一个迁移脚本,提示您进行验证,然后在数据库中执行该脚本。
右键点击对象并选择 。 或者,按下 Ctrl+B。
修改源代码。
(可选)在 数据库更改 工具窗口( )中,双击已修改的对象以打开差异查看器并验证您的更改。
点击 提交 按钮(
)。
当您在 数据库更改 工具窗口中点击 提交 按钮(
)时,会看到 迁移 对话框。 迁移 对话框显示对象的迁移脚本。
在 对象迁移 对话框中,请验证迁移脚本是否正确,然后点击 确定。
迁移脚本是一段用于更改整个数据库或部分数据库的代码。 您可以使用迁移脚本添加或删除列、升级数据库版本或更改列属性。
GoLand 可以自动生成迁移脚本,但在运行前,您需要对其进行检查。
查看源代码中的所有更改
从主菜单中选择 。

查看已修改版本和已保存版本之间的差异
当您编辑任意对象的源代码时,GoLand 会跟踪更改并在边栏中高亮显示这些更改。 例如,向例程或触发函数添加一条注释行。 添加的行会被高亮显示。 如果您点击边栏中高亮显示的行,将会出现一个带有 显示行的差异 按钮的小工具栏。 您可以点击 显示行的差异 按钮(
)来查看您添加的代码与源代码之间的差异。

在 数据库更改 工具窗口( )中,双击已修改的对象可打开 Diff Viewer 并验证您的更改。

已过时的缓存对象
GoLand 会缓存来自数据库的所有对象的源代码,以便快速提供编码辅助与导航功能。 如果您打开的对象是从第三方位置更新的,您将看到一则通知,指出缓存的对象与数据库中对应对象的源代码不同。

如果您在 IDE 中看到该警告,您可以在以下操作中进行选择:
同步 :从数据库中获取更改并更新缓存的本地对象。
禁用检查 :禁用该通知。
此外,您自己的对象源代码版本也可能与数据库中的版本存在冲突。 例如,当您与其他人修改了相同的源代码并按下 提交 (Ctrl+K )时。

您可以强制替换数据库中该对象的源代码(强制重构 ),或先同步对象状态再进行更改(中止重构并同步)。
如果您选择了 中止重构并同步 ,GoLand 会停止提交操作并从数据库中获取更改(类似于按下 同步 Ctrl+F5)。 如果冲突仍然存在,您将看到以下通知。

在该通知中,您可以选择以下选项:
还原本地更改 :撤销您的所有更改,并用数据库中的版本替换。
保留本地更改 :使用您的更改并覆盖数据库中的更改。
合并 :显示差异对话框以合并两个版本的对象源代码。

对象状态的颜色
默认情况下,所有对象显示为黑色。 这意味着对象源代码的当前状态与服务器上相同对象的源代码无差异。
如果对象的源代码已更改,但与服务器上的对象源代码没有冲突,该对象将以蓝色显示。
如果本地对象与服务器上相同对象的源代码存在冲突,该对象将以红色显示。 如果您在编辑器中打开此类对象,您将看到冲突通知。
例如,在以下截图中, get_customer_balance 函数已被修改但没有冲突, film_in_stock 函数已经修改并与服务器上相同函数的源存在冲突,其它对象未被修改。