域名 AXUM.RS 将于2025年10月到期。我们无意再对其进行续费,我们希望你能够接续这个域名,让更多 AXUM 开发者继续受益。
  • 方案1️⃣AXUM.RS 域名 = 3000
  • 方案2️⃣方案1️⃣ + 本站所有专题原始 Markdown 文档 = 5000
  • 方案3️⃣方案2️⃣ + 本站原始数据库 = 5500
如果你有意接续这份 AXUM 情怀,请与我们取得联系。
说明:
  1. 如果有人购买 AXUM.RS 域名(方案1️⃣),或者该域名到期,本站将启用新的免费域名继续提供服务。
  2. 如果有人购买了 AXUM.RS 域名,且同时购买了内容和/或数据库(方案2️⃣/方案3️⃣),本站将关闭。届时我们或许会以另一种方式与你再相遇。

SeaORM 的命令行工具和自动迁移

sea-orm-cli —— 实用的 SeaORM 命令行工具

cargo install sea-orm-cli

生成实体

sea-orm-cli generate entity \
    -u 'postgres://axum_rs:[email protected]:5432/axum_rs' \
    -o src/entity
参数说明
-u指定数据库连接字符串。
也可以设置环境变量DATABASE_URL,从而省略该参数
-o生成的实体输出到的目录

以下是使用环境变量的方式:

DATABASE_URL='postgres://axum_rs:[email protected]:5432/axum_rs' sea-orm-cli generate entity \
	-o src/entity

关于输出目录

输出目录有很多选择,取决于你的项目结构。

  • 如果你使用了 [workspace],则应将其输出到单独的子项目:-o entity/src 👉 别忘了在其它使用它的项目的Cargo.toml加上它的依赖
  • 如果你只是一个简单的项目,则应将其输出到当前项目的 src目录下,作为一个模块使用:-o src/entity 👉 别忘了在 src/main.rssrc/lib.rs加上 pub mod entity;

官方文档

官方文档

sea-orm-cli migrate init

将在当前目录下创建./migration子目录

将在当前目录下创建./migration子目录

sea-orm-cli migrate up
sea-orm-cli migrate <子命令>
子命令说明
init初始化
up运行所有已准备的迁移
up -n 10运行10条已准备的迁移
down回滚最后的迁移
down -n 10回滚最后10条迁移
status当前迁移状态
fresh删除数据库中所有表,然后运行所有迁移
refresh回滚所有已运行的迁移,然后重新运行所有迁移
reset回滚所有已运行的迁移

通过编程方式操作数据迁移

实现MigratorTrait,然后就可以通过编程方式操作了。

要查看完整内容,请先登录