#database-migrations #script #sql #dry-run #validation #database-schema #migration

app dry_sql

CLI 工具,用于测试运行你的 SQL 脚本

4 个版本

0.1.4 2024 年 5 月 9 日
0.1.3 2024 年 5 月 9 日
0.1.2 2024 年 4 月 27 日
0.1.1 2024 年 4 月 27 日

#612 in 数据库接口

MIT/Apache

12KB
112

DRY SQL

CLI 工具,用于测试运行你的 SQL 脚本

背景

当我在 CI 管道中设置一些应该在另一个环境中执行的数据库迁移时,创建了此工具。迁移应该应用于主分支。在应用程序部署之前,必须在拉取请求中成功应用特定的迁移。

如果团队严格执行数据库迁移,那么迁移问题将最小化或消失。然而,毕竟开发者也是人。有时由于人为错误,一些迁移脚本可能无法执行。因此,有必要验证尚未提交的迁移脚本。

虽然一些 SQL 脚本检查器可以检查 SQL 语句中的错误,但它们不能验证脚本是否会成功执行。即使脚本通过了检查器,也可能有几种原因导致 SQL 脚本无法执行

  • 数据相关问题:脚本在执行过程中可能遇到意外数据条件或约束,而这些条件或约束在检查过程中并未考虑。
  • 数据库架构更改:如果在检查过程之后数据库架构发生了更改,则脚本可能不再与更新的架构兼容。

用例示例

最常见的情况是在管道中验证迁移 SQL 脚本:)。当然,你可以在其他任何地方使用它来模拟 SQL 脚本。

使用方法

在终端

如果你想要测试运行一个 SQL 文件。

dry_sql --host <host> --port <port> --user <username> --password <password> --file <path/to/your/sql/script>

如果你想要在一个文件夹中测试运行多个 SQL。

dry_sql --host <host> --port <port> --user <username> --password <password> --dir <path/to/your/sql/script/foder>

限制

目前,此工具仅支持 Postgres SQL。其他支持将陆续推出。

堆栈

用 Rust 编写。

依赖项

~9–19MB
~264K SLoC