1.介绍
表,字段发生变化,都会有记录,自动同步到数据库中--》django支持这种操作
原生的sqlalchemy,不支持修改表的
flask-migrate可以实现类似于django的
python manage.py makemigrations #记录
python manage.py migrate #真正的同步到数据库
2.准备工作-
安装flask,flask-script,flask-migrate,flask和flask-migrate不要安装最新的,会有版本冲突
pip insatll flask==2.2.2
pip install flask-script==2.0.3
pip install flask-migrate==2.7.0
2.1 在manage.py也就是刚创建项目的app.py
python
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
manager = Manager(app)
# flask-script可以自定义命令---》
# flask-migrate本质是它借助于flask-script增加了几个命令来对数据库表和字段进行管理
Migrate(app, db) # sqlalchemy的db对象
manager.add_command('db', MigrateCommand)
manager.run() # 以后使用python manage.py runserver 启动项目
2.2 很重要
还要在apps的__init__页面导入创建的表名
python
from .user.models import User
2.3 以后第一次执行一下
python
python manage.py db init
# 生成一个migrations文件夹,里面以后不要动,记录迁移的编号
2.4 4 以后在models.py 写表,加字段,删字段,改参数
python
5 只需要执行
python manage.py db migrate # 记录
python manage.py db upgrade # 真正的同步进去