【14.0】Flask框架之flask-migrate
【一】引入
-
表,字段发生变化,都会有记录,自动同步到数据库中
-
在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
-
这个命令将根据生成的迁移脚本将实际的变更应用到数据库中。
-
以上就是使用Flask-Migrate进行数据库迁移的完整步骤。
-
通过这些步骤,你可以方便地进行数据库表结构的管理和变更。
-
需要注意的是,每次对模型进行修改后,都需要运行
db migrate
和db upgrade
命令来记录变更和同步到数据库中。
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17665009.html