使用 Migration 管理数据库
使用 Migration 管理数据库
使用 ORM 而不是 raw SQL 或 SQL builder 的主要优势之一,就是可以用 ORM 的 migration 管理数据库的升级。
适用场景
- 表结构升级:数据库需要变化,比如某些表需要新增字段
- 多变体应用:程序需要多种变体,比如金融应用中不同券商需要不同的数据表
目录结构
project/
├── migrations/
│ ├── common/ # 共享基础结构
│ │ └── 00000000000000_base/
│ │ ├── up.sql
│ │ └── down.sql
│ ├── broker_a/ # 券商A专用
│ │ └── 00000000000001_margin_a/
│ │ ├── up.sql
│ │ └── down.sql
│ └── broker_b/ # 券商B专用
│ └── 00000000000001_margin_b/
│ ├── up.sql
│ └── down.sql
├── diesel.toml
└── .env
Migration 文件结构
每个 migration 包含两个文件:
1 | -- up.sql(升级脚本) |
| 命令 | 说明 |
|---|---|
| diesel migration generate |
创建新 migration |
| diesel migration run | 运行所有待执行的 migrations |
| diesel migration revert | 回滚最近一次 migration |
| diesel migration redo | 重做最近一次 migration(revert + run) |
| diesel print-schema | 生成 schema.rs |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 TID's Blog!