Flask-Migrate

Django项目中,在进行数据库迁移的时候会执行以下两条命令:

python manage.py makemigrations
python manage.py migrate

那么Flask支持 makemigration / migrate 吗?

答案在这里该诉你,如果你同时拥有两个三方组件 Flask-Script 和 Flask-Migrate 那么就支持这样的操作

 Flask-Script 的安装与使用可参考之前的博客内容

一、安装 Flask-Migrate

pip3 install Flask-Migrate

二、将 Flask-Migrate 加入到 Flask 项目中

PS: 注意了 Flask-Migrate 是要依赖 Flask-Script 组件的

from app import create_app
# 导入 Flask-Script 中的 Manager
from flask_script import Manager
# 导入 Flask-Migrate 中的 Migrate 和 MigrateCommand
# 这两个东西说白了就是想在 Flask-Script 中添加几个命令和指令而已
from flask_migrate import Migrate,MigrateCommand

my_app = create_app()
# 让app支持 Manager
manager = Manager(my_app)

from app import db
# Migrate 既然是数据库迁移,那么就得告诉他数据库在哪里
# 并且告诉他要支持那个app
Migrate(my_app,db)
 # 现在就要告诉manager 有新的指令了,这个新指令在MigrateCommand 中存着呢
 # 当你的命令中出现database指令,则去MigrateCommand中寻找对应关系
manager.add_command("database",MigrateCommand) 
#数据库迁移指令
#1.python manage.py database init
#2.python manage.py database migrate       #django中的makemigration
#3.python manage.py database upgrade     #django中的migrate

if __name__ == '__main__':

    manager.run()
manage.py

 

posted @ 2019-02-18 11:20  中杯可乐不加冰  阅读(134)  评论(0编辑  收藏  举报