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

请选择您想要下载源代码的一个或多个数据源。
右键点击选择内容并导航到 。 您可以在以下选项中进行选择:
无 :请勿下载源代码。
系统架构除外 :下载所有对象的源代码,除了系统模式。
所有架构 :下载所有可用的源代码。

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

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

在 数据库更改 工具窗口( )中,双击修改后的对象以打开 差异查看器 并验证您的更改。

过时的缓存对象
IntelliJ IDEA 会缓存数据库中所有对象的源代码,以提供快速的编码支持和导航功能。 如果打开的对象更新自第三方位置,通知将显示缓存对象与数据库中同一对象的源代码不同。

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

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

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

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