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:root@127.0.0.1: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
中有改动,继续运行上面那三条命令即可。