需要的插件:flask-migrate
在每次修改模型之后,将修改的东西映射到数据库中。
使用flask-migrate 必须借助flask_scripts,这个包的所有MigrateCommand中包含了所有和数据库相关的命令。
需要将想要映射到数据库中的模型,导入到manage.py文件中。
from flask_script import Manager from flask_migrate import Migrate,MigrateCommand from zlktqa import app from exts import db #引入数据库模型名 from models import User manager=Manager(app) #使用flask_migrate绑定app和db migrate=Migrate(app,db) #添加迁移脚本的命令到manager中 manager.add_command('db',MigrateCommand) if __name__=="__main__": manager.run()
初始化迁移脚本文件:
$ python manage.py db init
将模型生成迁移文件,只要更改数据库模型,就执行一遍此操作:
$ python manage.py db migrate
将迁移文件真正的映射到数据库中,如果没有数据库,该命令会显示创建,同时运行迁移脚本,迁移数据库:
$ python manage.py db upgrade
若报错:ModuleNotFoundError: No module named 'MySQLdb'
方法:在配置SQLALCHEMY_DATABASE_URI时,加上一个pymysql就可以:
DB_URI='mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)