#migration #postgresql #sql #sqlx #migrate #directory

sqlx-pg-migrate

使用SQLx在PostgreSQL数据库上运行迁移的库

8个稳定版本

1.2.0 2022年2月9日
1.1.0 2020年11月19日
1.0.5 2020年11月19日
1.0.4 2020年6月27日
1.0.2 2020年6月25日

#2749数据库接口

Download history 8/week @ 2024-03-10 1/week @ 2024-03-17 22/week @ 2024-03-31 1/week @ 2024-04-07 9/week @ 2024-04-21 3/week @ 2024-04-28 2/week @ 2024-05-26

74 每月下载量

MIT 许可证

11KB
165 代码行

sqlx-pg-migrate

Build Crates.io Documentation

使用SQLx在PostgreSQL数据库上运行迁移的库。有关如何使用库的说明,请参阅文档


lib.rs:

使用SQLx在PostgreSQL数据库上运行迁移的库。

创建一个包含你的迁移的目录。库会按顺序运行所有文件。建议的命名规范是 000_first.sql001_second.sql 等等。

  1. 必要时将创建数据库。
  2. 将创建一个名为 sqlx_pg_migrate 的表来管理迁移状态。
  3. 将在单个事务中运行所有内容,因此要么运行所有挂起的迁移,要么什么都不运行。
  4. 期望您不要删除或重命名迁移。
  5. 期望您不要在两个现有迁移之间放置新的迁移。
  6. 期望文件名和内容为UTF-8。
  7. 没有回滚 - 只写入新的迁移。

您需要将这些两个crate作为依赖项添加

[dependencies]
include_dir = "0.6"
sqlx-pg-migrate = "1.0"

用法如下

use sqlx_pg_migrate::migrate;
use include_dir::{include_dir, Dir};

// Use include_dir! to include your migrations into your binary.
// The path here is relative to your cargo root.
static MIGRATIONS: Dir = include_dir!("migrations");

// Somewhere, probably in main, call the migrate function with your DB URL
// and the included migrations.
migrate(&db_url, &MIGRATIONS).await?;

依赖项

~11MB
~218K SLoC