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)该类后再执行更新指令才能更新成功。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐