Flask ORM 学习笔记Part02:Flask-Migrate的使用,数据库创建与数据导入
  qdp7fV9qUjiK 2023年12月06日 19 0

在上一篇学习笔记中 ,定义了各个类之间的关系。本篇笔记就来研究一下,将model类转数据库

一般来说在Flask环境下,使用Flask-Migrate这个扩展,用于简化数据库模型的迁移管理。数据库迁移是在应用开发过程中对数据库模型进行更改的一种方式,以确保数据库结构与应用代码的演变保持同步。

Flask-Migrate 安装配置使用

安装

在终端中运行以下命令安装 Flask-Migrate:

pip install Flask-Migrate

配置

在 Flask 应用中配置 Flask-Migrate、在 Flask 应用的主文件中,导入并配置 Flask-Migrate

配置Migrate可以写在Flask主程序中,也可以单独放在一个manager中,这里采取分离的方式,便于后续管理。

app.py 这个是flask的主文件,文中model模块在上文 Flask-SQLArchemy学习笔记Part01:model定义与关系

from flask import Flask
from model import db

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'  # 使用SQLite数据库,可以根据需要更改
db.init_app(app)

if __name__ == '__main__':
    app.run(debug=True)

# with app.app_context():
#     db.create_all()

manager.py 这个是管理文件,可以用于管理数据库迁移等。如果有需求,一些flask-cli的命令也可以在这里写。

from app import app
from flask_migrate import Migrate
from model import db

# 迁移命令管理与app,建立关系
# sqlite使用此参数render_as_batch=True使用batch操作替换普通操作,因为普通操作不支持表名,列名的改变!
migrate = Migrate(app, db, render_as_batch=True)

# 指定 flask应用使用 manage 模块中名为 app 对象
# Windows环境下定义环境变量
# set FLASK_APP=manage:app
# 类Unix系统下定义环境变量
# export FLASK_APP="manager"
# flask db init
# flask db migrate
# flask db upgrade

使用

在manager代码文件末尾写了使用方法:

  1. 定义环境变量,设定flask命令
  2. 使用flask db命令进行数据迁移操作

在终端中执行

Flask ORM 学习笔记Part02:Flask-Migrate的使用,数据库创建与数据导入_ORM

首先执行flask db init 进行初始化,生成migrations目录,该目录内为每次模型变更的升级与降级命令

然后执行flask db migrate 即可创建对应的数据库,本实例中使用sqlite,可以在目录中看到创建的test.db文件

Flask ORM 学习笔记Part02:Flask-Migrate的使用,数据库创建与数据导入_flask-migrate_02

如果后续model文件有变化,可以重新执行flask db migrate生成升级文件,然后执行flask db upgrade进行数据迁移,保证模型与数据库相一致。

总的来说,Flask-Migrate 简化了在 Flask 应用中进行数据库迁移的流程,使开发人员能够轻松地对数据库模型进行更改而不影响已有的数据。

未完待续:

数据操作,以及关系关联演示

marshmallow 的使用 序列化与反序列化

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月06日 0

暂无评论

推荐阅读
qdp7fV9qUjiK