因为采用
db.create_all
在后期修改字段的时候,不会自动更改到数据库中,必须删除表,然后重新运行db.create_all
才会重新映射,这样是不符合实际情况的。因此flask-migrate就解决了这个问题,可以直接将修改的东西映射到数据库中。
1.使用flask-migrate
必须借助flask-scripts
,这个包MigrateCommand
中包含了所有和数据库相关的命令。
2.flask-migrate`相关命令:
python manage.py db init
:初始化一个迁移脚本的环境,只需要执行一次。python manage.py db migrate
:将模型生成迁移文件,只要模型更改了,就需要执行一次这个命令。- python manage.py db upgrade`:将迁移文件真正的映射到数据库中。每次也需要执行一次这个命令。
3.注意点:
需要将你想要映射到数据库中的模型,都要导入到manage.py
文件中,如果没有导入进去,就不会映射到数据库中。
代码:
db_demo3:
from flask import Flask
from exts