tcb db pg migration up
执行本地待应用的迁移。命令生成执行计划后提交任务,并轮询至任务结束。
语法
tcb db pg migration up -e <envId> [--dry-run] [--include-all]
参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
--dry-run | 否 | 仅预览执行计划,不提交执行 | false |
--include-all | 否 | 允许执行版本号早于远端最新版本的待应用迁移 | false |
-e, --env-id <envId> | 是 | 环境 ID | — |
--json | 否 | 输出 JSON | — |
示例
# 仅预览待执行 migration
tcb db pg migration up -e <envId> --dry-run
# 正常执行
tcb db pg migration up -e <envId>
# 允许 out-of-order(历史上有本地版本号早于线上最新版本时使用)
tcb db pg migration up -e <envId> --include-all
完整流程
# 1. 首次接入:把远端历史 migration 全部拉到本地
tcb db pg migration fetch -e <envId>
# 2. 新增变更:创建一个 migration 文件并编辑
tcb db pg migration new create_orders_table
# 编辑 cloudbase/migrations/<version>_create_orders_table.sql,写入 SQL
# 3. 预览执行计划
tcb db pg migration up -e <envId> --dry-run
# 4. 实际执行
tcb db pg migration up -e <envId>
# 5. 校验状态
tcb db pg migration list -e <envId>
声明式执行
在 cloudbaserc.json 中配置 database 字段后,可通过 tcb deploy 执行数据库迁移。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
type | String | 是 | — | 数据库类型,目前仅支持 postgresql |
migrations | String | 否 | ./cloudbase/migrations | 迁移文件目录(相对项目目录,仅相对路径) |
{
"database": {
"type": "postgresql",
"migrations": "./cloudbase/migrations"
}
}
CLI 按文件名字典序升序执行,成功执行的文件记录在 __migrations 表中,不会重复执行。字段完整说明见配置文件。
注意事项
- 声明式迁移不支持自动回滚,需要手动编写反向 SQL
migration repair --status reverted只标记历史记录,不撤销 SQL 变更