修改数据库对象的源代码
最后修改时间:2023 年 10 月 26 日启用数据库工具和 SQL 插件
此功能依赖于数据库工具和 SQL 插件,默认情况下,它们在 PyCharm 中捆绑并启用。如果相关功能不可用,请确保您没有禁用该插件。
笔记
数据库工具和 SQL 插件仅在 PyCharm Professional 中可用。
按打开 IDE 设置,然后选择插件。CtrlAlt0S
打开已安装选项卡,找到数据库工具和 SQL插件,然后选中插件名称旁边的复选框。
PyCharm 跟踪您对将源代码存储在数据库中的对象所做的更改。这些对象可能是触发器、过程、函数、视图或其他对象。您在编辑器中对这些对象进行的每次修改都会保存为对象源代码的本地版本。
更新源代码
PyCharm 在内省过程中检索有关数据库的信息。此信息用于在 数据库工具窗口中显示对象、显示其 DDL、在完成过程中建议它们以及在其他功能中提供编码帮助。
您可以通过编辑数据库对象的 DDL 并提交更改来直接更新数据库对象的源代码。IDE 将生成迁移脚本并在数据库中执行。
数据库更改工具窗口显示所有更改的摘要。
加载数据源的源代码
PyCharm 在自省期间检索数据源的源代码。您可以在数据源属性中管理此过程。
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标。
按。ShiftEnter
选择您要下载源代码的一个或多个数据源。
右键单击所选内容并导航至“加载源”。您可以选择以下选项:
None:不下载源代码。
除系统架构外:下载除系统架构外的所有对象的源代码。
所有模式:下载所有可用的源代码。
编辑对象的源代码
CREATE
您可以通过直接编辑数据库对象的 DDL脚本并在编辑器中提交更改来更新数据库对象的源代码。IDE 将根据您的更改生成迁移脚本,提示您验证它,然后在数据库中执行它。
右键单击对象并选择导航| 转到 DDL。或者,按。Ctrl0B
更改源代码。
(可选)在数据库更改工具窗口(视图 | 工具窗口 | 数据库更改)中,双击修改的对象以打开差异查看器并验证您的更改。
单击提交按钮 ( )。
当您单击“数据库更改”工具窗口中的“提交”按钮 ( )时,您会看到“迁移”对话框。“迁移”对话框显示对象的迁移脚本。
在“对象迁移”对话框中,验证迁移脚本是否正确,然后单击“确定”。
迁移脚本是更改整个数据库或其中一部分的代码。您可以使用迁移脚本添加或删除列、升级数据库版本或更改列属性。
PyCharm可以自动生成迁移脚本,但运行前必须检查。
查看源代码中的所有更改
选择查看 | 工具窗口 | 从主菜单进行数据库更改。
笔记
仅当您更改对象的源代码后,数据库更改工具窗口才可用。
查看修改版本和存储版本之间的差异
当您编辑任何对象的源代码时,PyCharm 会跟踪更改并在装订线中突出显示它们。例如,向例程或触发器函数添加注释行。添加的行将突出显示。如果单击装订线中突出显示的行,则会显示一个小工具栏,其中包含“显示行差异”按钮。您可以单击“显示行差异”按钮 ( ) 以查看您添加的代码与源代码中的代码之间的差异。
在数据库更改工具窗口(视图 | 工具窗口 | 数据库更改)中,双击修改的对象以打开差异查看器并验证您的更改。
过期的缓存对象
PyCharm 缓存数据库中所有对象的源代码,以提供快速编码帮助和导航。如果您打开的对象是从第三方位置更新的,您将看到一条通知,指出缓存的对象与数据库中同一对象的源代码不同。
如果您在 IDE 中看到此警告,您可以选择以下操作:
同步:从数据库获取更改并更新缓存的本地对象。
禁用检查:禁用此通知。
此外,您的对象源代码版本与数据库中的版本之间可能存在冲突。例如,当您修改了与其他人相同的源代码并按下了“提交” ( )。Ctrl0K
您可以强制替换数据库中对象的源代码(强制重构)或同步对象状态,然后继续更改(中止重构和同步)。
如果您选择Abort Refactoring and Synchronize,PyCharm 将中止提交操作并从数据库中获取更改(就像您按下Synchronize 一样)。如果冲突仍然存在,您将看到以下通知。CtrlF5
在此通知中,您可以选择以下选项:
恢复本地更改:回滚所有更改并将其替换为数据库中的版本。
保留本地更改:使用您的更改并覆盖数据库中的更改。
合并:显示差异对话框以合并对象源代码的两个版本。
对象状态的颜色
默认情况下,所有对象均显示为黑色。这意味着对象源代码的当前状态与服务器上同一对象的源代码没有不同。
如果对象的源代码已更改,但与服务器上的对象源代码没有冲突,则该对象显示为蓝色。
如果本地对象的源代码与服务器上的同一对象的源代码存在冲突,则该对象显示为红色。如果您在编辑器中打开此类对象,您将看到有关冲突的通知。
例如,在下面的屏幕截图中,get_customer_balance
函数被修改但不包含冲突,film_in_stock
函数被修改并与服务器上相同函数的源发生冲突,其他对象未被修改。
数据库更改工具窗口的控件
图标 | 动作和快捷键 | 描述 |
---|---|---|
提交 Ctrl0K | 将本地更改提交到数据库服务器。有关提交和恢复更改的更多信息,请参阅将更改提交到数据库。 | |
回滚 CtrlAlt0Z | (对于手动事务模式。)回滚更改。 | |
显示差异 Ctrl0D | 比较并查看您编辑的代码与源代码中的代码之间的差异。 | |
通过...分组 | 根据对象的类型对对象进行分组。例如,例程、规则或视图。 | |
展开全部 CtrlNumPad + | 展开所有树中的所有节点。 | |
全部收缩 CtrlNumPad - | 折叠所有树中的所有节点。 |
感谢您的反馈意见!