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了,然后还要删除最新的版本文件:
