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