用于数据库迁移,sqlalchemy只能生成和删除表,不能对已经存在的表进行操作。通过flask-migrate可以对已经存在的表字段进行修改
1、安装:依赖于flask-script,所以需要安装它
pip install flask-migrate
2、使用方法
1)导入
app和db,分别是flask对象和SQLAlchemy对象
Migrate和MigrateCommand,前者用于注册,传入app和db对象,后者用于创建命令,用于在控制台执行命令
from flask_demo import create_app, db from flask_script import Manager from flask_migrate import Migrate, MigrateCommand app = create_app() # runserver 启动 manager = Manager(app) # 注册migrate, flask app和SQLAlchemy db Migrate(app, db)
#创建命令 manager.add_command('db', MigrateCommand) if __name__ == '__main__': manager.run() # app.run()
3、创建好models后,执行命令
python manage.py db init # 只需要执行一次,会创建一个migrations目录
python manage.py db migrate # 创建或修改表时执行,会生成一条记录
python manage.py db upgrade # 更新数据库