Flask使用MySQL数据库通过Flask-SQLAlchemy 迁移数据库,实际更新文件,但是提示没有检测到数据更新。

本地写了一个model的用户类,数据库连接信息正确,执行下面2条命令进行数据库迁移。

flask db migrate 生成迁移文件

flask db upgrade 执行迁移文件的升级

发现执行完后:提示没有检测到数据的更新

PS C:\Users\mu>flask db migrate

INFO alembic.runtime.migration Context impl MySQLImpl.

INFO alembic.runtime.migration Will assume non-transactional DDL.

INFO alembic.envNo changes in schema detected.

PS C:\Users\mu> flask db upgrade

INFO alembic.runtime.migration Context impl MySQLImpl.

INFO alembic.runtime.migration Will assume non-transactional DDL.

项目目录结构:

MU

app.py

app/

models

auto_model.py

migrations/

很郁闷,为什么执行生成迁移文件后,提示没有数据更新。

最后找了很多的相关材料找到了解决方法,是因为Alembic没有获得模型的信息,导致无法比较差异。

解决方法

需要在migrations/env.py中导入相关的模型,让Alembic能够获取到模型的元数据。

比如我的项目目录结构是:

MU

app.py

app/

models

auto_model.py

migrations/

那么需要再migrations/env.py中添加导入模型命令

from app.models.auto_model import *

相关推荐
无关868815 小时前
Redis Bitmaps 用户签到系统设计方案
数据库·redis·缓存
江华森16 小时前
FastAPI 极速开发指南 — 从零到生产级 API 实战
数据库·fastapi
左直拳16 小时前
mysql分区表自动归档
mysql·分区表·分区表归档
abcy07121317 小时前
flask celery hdfs 异步上传
python·hdfs·flask
老纪17 小时前
Redis分布式锁进第九零篇
数据库·redis·分布式
haven-85217 小时前
MySQL事务ACID、隔离级别、MVCC、幻读解决
数据库·mysql
小高学习java17 小时前
事务的边界问题,如何判断数据回滚时机。
java·数据库·后端
迷枫71218 小时前
【无标题】
数据库
TDengine (老段)18 小时前
TDengine 扫描算子 — TableScan、TagScan 与下推优化
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
放下华子我只抽RuiKe518 小时前
FastAPI 全栈后端(三):数据库与 ORM
前端·数据库·react.js·oracle·性能优化·前端框架·fastapi