alembic就好像是git一样,,每次修改数据库都会有个对应的版本号,可以通过版本号回滚到以前的版本。
在上一篇文章中初始化了alembic,现在要修改一下配置文件:
1、在alembic文件夹里面的env.py里新增红框中的三行代码,其中flask_alembic_0426是主文件名;
2、修改env.py里的target_metadata变量:
3、修改alembic.ini:
然后就可以切换数据库的版本了。
1、在模型里修改了数据库的表,如:我在这张表里添加了一个字段“address”
2、保存后,就可以新生成一个版本了:
alembic revision --autogenerate -m "add address column"
3、将数据库更新到刚才那个版本,也就是最新版本:
alembic upgrade head
查看数据库表,多了一列:
4、查看当前的版本号:
alembic current
fce5d4alebe4
5、查看最新的版本号:
alembic heads
当前版本与最新版本号相同。
6、查看版本历史:
alembic history
7、回滚到上个版本:从上图可得上个版本号为4b33fbbb8fc6
alembic downgrade 4b33fbbb8fc6
回滚成功:
8、回到最新的版本,当在address字段加入nullable=False会怎么样?
表已经建好了,而且里面有数据,没的都是NULL,此时改为非空?试试吧
生成新版本没问题:7369f5
但是能更新到新版本吗?
报错了!说明这样做是不行的。
只能删除掉模型中的nullable=False了,然后还要删除最新的版本文件: