概述
参考来源:https://www.jianshu.com/p/394e6453a6b0
由于tortoise-orm的使用体验并不友好,所以我切换到了sqlalchemy进行开发。
sqlalchemy数据库orm模式迁移大概流程如下(core和orm有区别):
初始化alembic
安装:
poetry add alembic
切换到虚拟机,执行
alembic init alembic
修改配置文件
修改alembic.ini里面的sqlalchemy.url
为正确的数据库连接
sqlalchemy.url = mysql://user:password@ip:port/db_name
修改alembic/env.py的文件,在里面增加model位置
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)) +"/../")#其实可以不用
from models import Base
...#省略代码
target_metadata = Base.metadata # 设置创建模型的元类
生成迁移文件
alembic revision --autogenerate -m "message"
注意: -m可以没有,但是--autogenerate
不能少
更新数据库
alembic upgrade head
其他参数
init:创建一个alembic仓库。
revision:创建一个新的版本文件。
--autogenerate:自动将当前模型的修改,生成迁移脚本。
-m:本次迁移做了哪些修改,用户可以指定这个参数,方便回顾。
upgrade:将指定版本的迁移文件映射到数据库中,会执行版本文件中的upgrade函数。如果有多个迁移脚本没有被映射到数据库中,那么会执行多个迁移脚本。
[head]:代表最新的迁移脚本的版本号。
downgrade:会执行指定版本的迁移文件中的downgrade函数。
heads:展示head指向的脚本文件版本号。
history:列出所有的迁移版本及其信息。
current:展示当前数据库中的版本号。