Flask开发过程中,难免不会在开发工程中修改数据库信息,如添加字段,修改字段类型等,Flask可以通过扩展库flask-migrate来更新DEBUG中的工程数据库,更新数据库步骤如下:
1、首先需要安装flask_migrate,pip install flask_migrate
2、因为flask_sqlalchemy是通过终端命令更新,所以需要flask_script来接收终端命令:pip install flask_script
3、初始化及通知flask_script的Manager接收migrate更新数据库指令:
from flask_migrate import MigrateCommand
from flask_script import Manager
from app import create_app
app = create_app()
manager = Manager(app)
manager.add_command("db", MigrateCommand)
if __name__ == '__main__':
manager.run()
4、初始化Migrate,在终端输入两条命令:
python manager.py db init
python manager.py db migrate
,执行完成后在你的工程根目录会生成migrations目录,里边主要是展示你的数据库所有更新信息,如下图:
,
5、更新model,
class Tag(db.Model):
tablename = 'tag'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(100), nullable=False)
state = db.Column(db.Boolean, comment="0:enable; 1:disable")
终端输入执行升级数据库指令:python manager.py db upgrade,当然你也可以降级更新数据库:python manager.py db downgrade,
注:如果仅仅是定义类Model,直接命令更新数据库是不会更新的,需要运行时有调用到才会有效,引入(from app.models.Tag import Tag)该类后再执行更新指令才能更新成功。
版权归原作者 板砖也快乐 所有, 如有侵权,请联系我们删除。