1.Flask-Migrate介绍
flask-migrate可以十分方便的进行数据库的迁移与映射,将我们修改过的ORM模型映射到数据库中。flask-
migrate是基于Alembic进行的一个封装,并集成到Flask中,所有的迁移操作其实都是Alembic做的,他能跟踪模
型的变化,并将变化映射到数据库中。
pip install flask-migrate
2.Flask-Migrate使用
在项目中创建test_migrate.py,注意:flask-migrate中3.0以上版本没有MigrateCommand,此处flask-migrate版本为2.7.0
from flask_migrate import Migrate, MigrateCommand from flask_script import Manager
# 使用flask-script添加自定义命令时需要将Manger对象中的from flask._compat import text_type改为from flask_script._compat import text_type from comment.modle import db import app # 导入自己初始化的app manager = Manager(app) # 用来绑定app和db到flask-migrate的 Migrate(app, db) # 添加Migrate的所有子命令到db下 manager.add_command('db', MigrateCommand) if __name__ == '__main__': manager.run()
使用定义好的命令并初始化--python test_migrate.py db init,然后migtare,upgrade等步骤,最终会创建一个migrations目录和空的alembic_version表。
使用flask-migrate时需要先将自己定义的资源添加进定义的api中,否则只会创建一个空的alembic_version表,添加完资源后重复之前的命令。
3.Flask-Migrate命令
1. 初始化一个环境:python db_manage.py db init 2. 自动检测模型,生成迁移脚本:python db_manage.py db migrate 3. 将迁移脚本映射到数据库中:python db_manage.py db upgrade 4. 更多命令:python db_manage.py db --help
浙公网安备 33010602011771号