Flask-Migrate
Flask-Migrate
实现类似以Django
的python manager.py migrate
数据库迁移操作,依赖于Flask-Scrapt
模块
- 安装
pip install Flask-Migrate
- 应用
from app01 import create_app
# 导入 Flask-Script 中的 Manager
from flask_script import Manager
# 导入 Flask-Migrate 中的 Migrate 和 MigrateCommand
# 这两个东西说白了就是想在 Flask-Script 中添加几个命令和指令而已
from flask_migrate import Migrate, MigrateCommand
app = create_app()
app.config['DEBUG'] = True
# 让app支持 Manager
manager = Manager(app)
from app01 import db
# Migrate 既然是数据库迁移,那么就得告诉他数据库在哪里
# 并且告诉他要支持那个app
Migrate(app, db)
# 现在就要告诉manager 有新的指令了,这个新指令在MigrateCommand 中存着呢
manager.add_command("db", MigrateCommand) # 当你的命令中出现 db 指令,则去MigrateCommand中寻找对应关系
"""
数据库迁移指令:
python manager.py db init
python manager.py db migrate # Django中的 makemigration
python manager.py db upgrade # Django中的 migrate
"""
@manager.command
def func(arg):
print(arg)
@manager.option("-n", "--name", dest="name")
@manager.option("-s", "--say", dest="say")
def talk(name, say):
print(f"{name}你可真{say}")
if __name__ == '__main__':
# app.run(debug=True)
# 替换原有的app.run(),然后大功告成了
manager.run()
命令
数据库迁移指令:
python manager.py db init # 执行后目录将会出现一个 `migrations` 文件夹,记录数据库迁移记录
python manager.py db migrate # Django中的 makemigration
python manager.py db upgrade # Django中的 migrate