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

79 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据库迁移
本目录包含数据库迁移相关的脚本和配置。
## 目录结构
- `alembic.ini`: Alembic 配置文件
- `env.py`: Alembic 环境配置
- `script.py.mako`: 迁移脚本模板
- `versions/`: 迁移脚本目录
## 使用方法
### 安装依赖
```bash
pip install alembic
```
### 生成迁移脚本
使用通用迁移脚本生成工具生成迁移脚本:
```bash
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
示例:
```bash
# 添加 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
```
### 执行迁移
使用迁移执行脚本执行迁移:
```bash
python scripts/run_migration.py [--revision 版本号] [--downgrade]
```
参数说明:
- `--revision`: 版本号,为空表示升级到最新版本
- `--downgrade`: 是否降级,默认为 False
示例:
```bash
# 升级到最新版本
python scripts/run_migration.py
# 升级到指定版本
python scripts/run_migration.py --revision 001
# 降级到指定版本
python scripts/run_migration.py --revision 001 --downgrade
```
## 注意事项
1. 迁移脚本会自动为已有记录生成默认值,但可能需要根据实际情况修改。
2. 执行迁移前,请确保已备份数据库。
3. 降级操作可能会导致数据丢失,请谨慎使用。