2025-03-17 14:58:05 +08:00

2.0 KiB
Raw Permalink Blame History

数据库迁移

本目录包含数据库迁移相关的脚本和配置。

目录结构

  • alembic.ini: Alembic 配置文件
  • env.py: Alembic 环境配置
  • script.py.mako: 迁移脚本模板
  • versions/: 迁移脚本目录

使用方法

安装依赖

pip install alembic

生成迁移脚本

使用通用迁移脚本生成工具生成迁移脚本:

python scripts/generate_migration.py --table 表名 --field 字段名 --type 字段类型 [--nullable] [--default 默认值] [--comment 注释] [--unique] [--index]

参数说明:

  • --table: 表名,必填
  • --field: 字段名,必填
  • --type: 字段类型,如 String(36), Integer, Boolean 等,必填
  • --nullable: 是否可为空,默认为 False
  • --default: 默认值
  • --comment: 注释
  • --unique: 是否唯一,默认为 False
  • --index: 是否创建索引,默认为 False

示例:

# 添加 task_id 字段到 tasks 表
python scripts/generate_migration.py --table tasks --field task_id --type String(36) --comment "任务UUID用于外部引用" --unique --index

# 添加 is_active 字段到 users 表
python scripts/generate_migration.py --table users --field is_active --type Boolean --default "true" --comment "是否激活" --index

执行迁移

使用迁移执行脚本执行迁移:

python scripts/run_migration.py [--revision 版本号] [--downgrade]

参数说明:

  • --revision: 版本号,为空表示升级到最新版本
  • --downgrade: 是否降级,默认为 False

示例:

# 升级到最新版本
python scripts/run_migration.py

# 升级到指定版本
python scripts/run_migration.py --revision 001

# 降级到指定版本
python scripts/run_migration.py --revision 001 --downgrade

注意事项

  1. 迁移脚本会自动为已有记录生成默认值,但可能需要根据实际情况修改。
  2. 执行迁移前,请确保已备份数据库。
  3. 降级操作可能会导致数据丢失,请谨慎使用。