第十三章: flask_migrate 的介绍与安装与使用

flask_migrate 的介绍与安装与使用

  • 什么是 flask_migrate ?

    flask_migrate 是处理 sqlalchemy 数据迁移的工具。

  • flask_migrate 有什么用?

    flask_migrate 是当数据模型发生变化的时候,将修改后的东西重新映射到数据库中。

  • flask_migrate 怎么安装?

    pip install flask_migrate

  • flask_migrate 怎么使用 ?

    • config.py
  SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:[email protected]:3306/test?charset=utf8'
  • exts.py
  from flask_sqlalchemy import SQLAlchemy
  from datetime import datetime
  db = SQLAlchemy()
  class Label(db.Model):
      __tablename__ = 'label'
      id = db.Column(db.Integer,autoincrement=True,primary_key=True)
      name = db.Column(db.String(32),nullable=False)
      uid = db.Column(db.Integer)
      create_time = db.Column(db.DateTime,default=datetime.now())
      __table_args__ = {
          'mysql_charset':'utf8'
      }
  • db_manager.py
    from flask import Flask
    from exts import db
    app = Flask(__name__)
    app.config.from_object('config')
    db.init_app(app=app)
  • manager.py
    from flask_script import Manager
    from db_manager import app
    from exts import db
    from flask_migrate import MigrateCommand,Migrate
    from exts import Label
    manager = Manager(app)
    # Migrate() 需要绑定app 和 db
    migrate = Migrate(app,db)
    # 子命令  MigrateCommand 包含三个方法 init migrate upgrade
    manager.add_command('db',MigrateCommand)
    
    if __name__ == '__main__':
        manager.run()
    
  • 运行
    > python manager.py db init
    > python manager.py db migrate
    > python manager.py db upgrade
  • 如果模型 exts.py中有改动,继续运行上面那三条命令即可。

你可能感兴趣的:(flask专题)