域名 AXUM.RS 将于2025年10月到期。我们无意再对其进行续费,我们希望你能够接续这个域名,让更多 AXUM 开发者继续受益。现在,我们已启用新域名 AXUM.EU.ORG
  • 方案AXUM.RS 域名 = 3000
如果你有意接续这份 AXUM 情怀,请与我们取得联系。
说明:
  1. 如果有人购买 AXUM.RS 域名,或者该域名到期,本站将使用免费域名 AXUM.EU.ORG 继续提供服务。

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

SeaORM 提供了一个命令行工具,可以快速生成实体。同时,还提供了自动迁移功能。

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

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

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

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

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