使用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::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