架构更改时自动更新本地存储库

Auto update local repository upon schema change

使用 DataGrip,我知道有一种方法可以根据数据库架构生成 SQL 脚本(右键单击 table > SQL Scripts > SQL Generator)。但是,有没有办法让 DataGrip 在架构通过查询 (DDL) 或 UI(Modify Table 选项)更改时自动更新这些生成的 SQL 脚本?

现在,如果我希望我的 SQL 脚本文件受版本控制,并且如果我希望这些文件反映我的数据库的最新 state/schema,我必须:

  1. 手动修改文件。
  2. 复制文件(查询)的内容并将其粘贴到 DataGrip 中的控制台。
  3. 运行 从控制台查询以更新数据库架构。
  4. 如果第 3 步成功,请将我的文件中的更改提交到我的本地 GIT 存储库。如果步骤 3 失败,请从步骤 1 重新开始。

相反,我想:

  1. 通过查询或 New > Create Table 选项或 Right click on the table > Modify Table 选项直接在 DataGrip 上更改架构。
  2. (如果第 1 步成功)显示 DataGrip 本身的更改集,单击 Save / Commit 之类的内容后,修改本地存储库中相应的 SQL 脚本并创建一个新的提交。然后这将触发我的 CI/CD 管道来构建、测试和部署我更改的架构。

P.S:这类似于 Red-Gate 的 SQL Source Control 在 SQL Server Management Studio 中的功能。不幸的是,他们没有 DataGrip 插件。

现在 DataGrip 无法根据模式更改自动更新 SQL 文件。我们有想法在未来实现这一点。我认为最好的投票票是:https://youtrack.jetbrains.com/issue/DBE-3852

不管怎样,你现在的算法好像不是最有效的。我会提供什么:

  1. 打开 文件 窗格 (Ctrl/Cmd+1) 并将包含 DDL 脚本的文件夹附加到那里。
  2. 通过首选项将这些文件与所需的数据源相关联 |数据库 | SQL 分辨率范围
  3. 可选地,安装 VCS 插件以仅从 DataGrip 提交和推送文件。在此处了解更多信息:https://blog.jetbrains.com/datagrip/2018/06/01/tutorial-how-to-use-git-with-datagrip/
  4. 当您修改文件时,只需 运行 这些脚本针对您需要的数据源。上下文菜单也可用于此: