基本操作:
pip install alembic
cd到工程根目录:alembic init path_name
修改alembic.ini中的数据库url
在env.py中添加工程路径至python库搜索路径
在env.py中导入所有的model
在env.py设置target_metadata
import sys, os basepath = os.path.abspath(__file__) sys.path.append(r"basepath\..\..\..\\") from mindform.server.author import model target_metadata = model.Base.metadata
常用命令:
alembic是数据库的升级管理工具,它可以自动生成升级回退脚本,也可以只生成模板升级回退脚本,然后由开发者自行编写。
自动生成升级回退脚本:alembic revision --autogenerate -m "xxxxxxxx"
只生成模板升级回退脚本:alembic revision -m "xxxxxxxx"
上述操作会生成一个数据库版本号,利用alembic可以方便的将数据库升级/回退至对应的版本
alembic upgrade head
alembic downgrade base
问题:
问题1、需要在env.py中导入所有关注的模型,自动生成脚本时只会关注导入的模型
问题2、执行alembic revision --autogenerate -m "xxxxxxxx"时报如下错误,原因是之前已经生成了一个版本,但是并没有执行alembic upgrade head
Target database is not up to date.
FAILED: Target database is not up to date.