使用alembic进行数据库版本管理

1.Alembic简介:

alembic是sqlalchemy的作者开发的。用来做OMR模型与数据库的迁移与映射。alembic使用方式跟git有点了类似,表现在两个方面,第一个,alembic的所有命令都是以alembic开头;第二,alembic的迁移文件也是通过版本进行控制的。首先,通过pip install alembic进行安装。以下将解释alembic的用法:
 

2.安装alembic

# 进入虚拟环境再安装
pip3 install alembic

3.初始化

# 使用之前,先在项目根目录进行初始化
alembic init alembic

完成上述命令后,然后进入pycharm编辑器中,我们就可以看到我们的项目下多了一个alembic文件和alembic.ini文件

 使用alembic进行数据库版本管理

4.找到alembic.ini配置文件,修改sqlalchemy.url,代码如下:

# 和数据库连接信息一样
sqlalchemy.url = mysql+pymysql://root::3306/t_test

5.找到env.py文件,修改target_metadata参数

使用alembic进行数据库版本管理

代码如下:

import os
import sys
# 把当前项目路径加入到path中
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
from day05.modules import Base  # 导入modules中的Base

target_metadata = Base.metadata

6.创建数据库迁移文件,命令如下:

alembic revision --autogenerate -m "迁移信息"

运行该命令,出现下方信息说明迁移文件创建成功

使用alembic进行数据库版本管理

创建成功会在version目录下创建一个迁移文件,截图如下(前面1bc..0a这段代表迁移版本号,后面代表迁移信息):

使用alembic进行数据库版本管理

注:alembic映射到数据库流程如下

ORM模型 ——迁移文件——映射到数据库中

7.将迁移文件映射到数据库中,命令如下:

alembic upgrade head

使用alembic进行数据库版本管理

使用alembic进行数据库版本管理

OK,数据库表已成功映射到数据库中

8.修改表结构

先修改表,再执行上面6,7步

9.alembic基本命令

# 更新数据库到最新版本:

alembic upgrade head

# 更新数据库:

alembic upgrade 版本号

# 降级数据库:

alembic downgrade 版本号

# 更新到最初版:

alembic downgrade head

# 查看记录和历史

alembic history