python flask-migrate和flask-script

使用flask-migrate和flask-script实现数据库修改

#     命令行管理文件:
#           - 包含数据库迁移命令
#           - 包含数据库修改命令
"""
from flask_migrate import  Migrate, MigrateCommand
from flask_script import  Shell, Manager
from models import app, db, User, Department
# 用来管理命令的对象, Manager用来跟踪所有名林不过并处理他们如何从命令行调用;
manager = Manager(app)
migrate = Migrate(app, db)
# 添加一条数据库迁移管理的命令
manager.add_command('db', MigrateCommand)

在命令行中执行:

python manager.py db init  #创建迁移仓库
python manager.py db migrate "对这次迁移的说明"  #生成迁移文件
python manager.py db upgrade  # 将迁移文件映射的数据库中,最终改变数据库结构
python manager.py db history #查看迁移历史
python manager.py db downgrade  base  #返回base时数据库结构

python flask-migrate和flask-script_第1张图片

用命令对数据库内容进行查询和添加

from flask_migrate import  Migrate, MigrateCommand
from flask_script import  Shell, Manager
from models import app, db, User, Department
# 用来管理命令的对象, Manager用来跟踪所有名林不过并处理他们如何从命令行调用;
manager = Manager(app)
migrate = Migrate(app, db)
# 添加一条数据库迁移管理的命令
manager.add_command('db', MigrateCommand)

#  添加一条命令, 可以显示所有的用户
@manager.command
def showUser():
    """显示所有的用户"""
    users = User.query.all()
    print(users[:5])

#  添加一条命令, 可以显示所有的用户
@manager.command
def showDepart():
    """显示所有的部门"""
    deaprts  = Department.query.all()
    print(deaprts)

 # 添加部门
@manager.option('-n', '--name', help="部门名称")
def add_depart(name):
    try:
        depart1 = Department(name=name)
        db.session.add(depart1)
        db.session.commit()
    except Exception:
        print("创建部门失败!")
    else:
        print("创建部门%s成功!" %(name))
   
  if __name__ == "__main__":
    # 准备
    manager.run()

python flask-migrate和flask-script_第2张图片
python flask-migrate和flask-script_第3张图片
在这里插入图片描述

你可能感兴趣的:(python flask-migrate和flask-script)