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

Posted nanamiyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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文件

 技术图片

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

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

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

技术图片

代码如下:

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 "迁移信息"

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

技术图片

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

技术图片

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

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

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

alembic upgrade head

技术图片

技术图片

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

8.修改表结构

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

9.alembic基本命令

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

alembic upgrade head

# 更新数据库:

alembic upgrade 版本号

# 降级数据库:

alembic downgrade 版本号

# 更新到最初版:

alembic downgrade head

# 查看记录和历史

alembic history

 

以上是关于使用alembic进行数据库版本管理的主要内容,如果未能解决你的问题,请参考以下文章

Python使用Alembic框架进行数据库版本管理

Alembic

flask使用alembic,进行数据库结构管理,升级,加表,加项

4.alembic数据迁移工具

flask数据库之alembic的使用

Postgres 和 alembic - 假设 SERIAL 序列