【一】引入
-
表,字段发生变化,都会有记录,自动同步到数据库中
-
在django支持这种操作
-
原生的sqlalchemy,不支持修改表的
-
-
flask-migrate可以实现类似于django的数据库迁移功能
- python manage.py makemigrations #记录
- python manage.py migrate #真正的同步到数据库
【二】使用步骤
- Flask-Migrate是一个用于管理数据库迁移的扩展,它基于Flask和SQLAlchemy。下
步骤一:安装依赖
- 首先,确保你的Flask版本是2.2.2,并安装以下依赖:
- pip3.8 install flask==2.2.2
- pip3.8 install flask-migrate==2.7.0
- pip3.8 install flask-script==2.0.3
步骤二:配置Manager和Migrate
- 在你的Flask应用程序所在的.py文件中,导入Manager和MigrateCommand,并创建Manager对象:
- from flask_script import Manager
- from flask_migrate import Migrate, MigrateCommand
-
- manager = Manager(app)
-
这里的
app
是你的Flask应用实例。 -
然后,利用Migrate函数将你的应用程序和SQLAlchemy的数据库对象关联起来,并添加相应的命令到manager:
- migrate = Migrate(app, db) # db是SQLAlchemy的数据库对象
- manager.add_command('db', MigrateCommand)
- 完整如下
- 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 启动项目
步骤三:运行Manager
- 使用
manager.run()
启动你的Flask应用程序,以后你可以通过运行python manage.py runserver
来启动项目。
步骤四:初始化迁移
- 第一次使用Flask-Migrate时,需要初始化迁移,此时会生成一个名为
migrations
的文件夹。 - 在命令行中执行如下命令:
python manage.py db init
- 该命令将在项目目录下生成一个
migrations
文件夹,用于记录迁移的编号和变更内容。
步骤五:修改模型
- 当你需要更新数据库表结构时,只需在定义表的模型文件(一般是
models.py
)中进行修改,如增加、删除或修改字段。
步骤六:生成迁移脚本
- 执行下面的命令,生成一个新的迁移脚本:
python manage.py db migrate
- 该命令会基于模型的变化生成一个新的迁移脚本,将变更内容记录在之前创建的
migrations
文件夹中。
步骤七:应用迁移
- 最后,执行下面的命令来将迁移应用到数据库中:
python manage.py db upgrade