Flask-Migrate数据库模型映射
阅读原文时间:2023年07月09日阅读:1

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

  1. 自动检测模型,生成迁移脚本:python db_manage.py db migrate
  2. 将迁移脚本映射到数据库中:python db_manage.py db upgrade
  3. 更多命令:python db_manage.py db --help