PyCharm 2025.3 Help

修改数据库对象的源代码

启用 数据库工具和 SQL 插件

此功能依赖 数据库工具和 SQL 插件,该插件在 PyCharm 中默认捆绑并启用。 如果相关功能不可用,请确保您未禁用该插件。

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

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

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

更新源代码

PyCharm 会在自省过程中检索有关数据库的信息。 这些信息用于在 数据库 工具窗口中显示对象、显示其 DDL、在补全时提供建议,以及用于其他编码辅助功能。

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

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

为数据源加载源代码

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

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

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

    • Shift+Enter

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

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

    • :不下载源代码。

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

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

    为数据源加载源代码

编辑对象的源代码

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

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

  2. 对源代码进行更改。

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

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

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

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

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

    PyCharm 可以自动生成迁移脚本,但在运行之前,您必须检查该脚本。

查看源代码中的所有更改

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

    数据库更改工具窗口

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

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

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

    数据库更改工具窗口

过期的缓存对象

PyCharm 会缓存数据库中所有对象的源代码,以提供快速的编码辅助和导航。 如果您打开的对象已从第三方位置更新,您将看到一条通知,指出缓存的对象与数据库中同一对象的源代码不一致。

过期的缓存对象

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

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

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

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

过期的缓存对象

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

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

过期的缓存对象

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

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

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

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

    过期的缓存对象

对象状态的颜色

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

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

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

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

最后修改日期: 2025年 12月 2日