alembic是配合SQLAlchemy的一个工具,可以方便的upgrade或downgrade数据库,而不用每次修改都进行reset操作导致数据丢失。
安装和初始化
pip install alembic
安装之后在project的目录下面执行初始化命令:
alembic init APP/NAME
这里APP是我Flask的APP名称,NAME是存放alembic初始化文件的文件夹名称,我这里用的是migrations。
初始化后,进入migrations文件夹,会有versions文件夹,每次生成的revision file会在这儿,env.py环境文件,根据项目设置,以及script.py.mako产生revision file的模板文件,如果需要可以自定义,这里我是将常用的sqlalchemy及时间相关的包导入放在了这里,不用每次都去添加。
在project文件夹下还有一个alembic.ini的文件,也是初始化生成的。
首次使用
docker-compose up # 启动image
假设现在我们要添加一个foo table,执行下面的命令创建一个revision file:
docker-compose exec --user "$(id -d):$(id -g)" website alembic revision -m "create foo table"
其实除开docker的命令,这个和git的使用是很像的,–user “ (id