Alembic 是一个用于 SQLAlchemy 的数据库迁移工具,适用于 Python 项目。它支持版本控制数据库模式,并提供灵活的迁移管理方式。
安装 Alembic
使用 pip 安装:
pip install alembic
初始化
在项目目录下执行:
# 这里 alembic 为目录名,可以设置为其他
alembic init alembic
这将创建 alembic 目录及 alembic.ini 配置文件,结构如下:
/your_project
/alembic
/versions # 存放迁移文件
env.py # 迁移环境配置
script.py.mako # 迁移脚本模板
alembic.ini # Alembic 配置文件
配置数据库连接
在 alembic.ini 中修改 sqlalchemy.url
:
# 默认配置,文件路径
script_location = alembic
sqlalchemy.url = postgresql://user:password@localhost/dbname
修改 env 配置
在 alembic/env.py
修改:
from myapp.models import Base # 导入 SQLAlchemy Base
# 默认为 None
target_metadata = Base.metadata
使用 Alembic
生成迁移脚本
创建表或者修改表,先执行:
alembic revision --autogenerate -m "auto migration"
应用迁移
alembic upgrade head
或者指定版本:
alembic upgrade <revision_id>
回滚迁移
回滚到上一个版本:
alembic downgrade -1
回滚到指定版本:
alembic downgrade <revision_id>
检查
查看迁移历史
alembic history
查看当前数据库版本
alembic current