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