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.env]No 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 *

相关推荐
成为你的宁宁3 分钟前
【Prometheus监控Nginx/Mysql/Redis/Docker/Rabbitmq】
mysql·nginx·prometheus
@我漫长的孤独流浪8 分钟前
SQL触发器实战:银行系统数据完整性控制
数据库·oracle
半夜修仙21 分钟前
Redis中Set数据类型的常见命令
java·数据库·redis·笔记·学习
oradh28 分钟前
Oracle逻辑存储结构概述
数据库·oracle·逻辑存储结构·oracle逻辑存储结构概述
廿一夏32 分钟前
MySql视图触发器函数存储过程
数据库·sql·oracle
hikktn34 分钟前
Oracle 行锁 ORA-00054 高效重试机制实战:MERGE 批量更新 + FOR UPDATE NOWAIT 完整方案
数据库·oracle
￰meteor35 分钟前
【数据库导学】
数据库
zxrhhm36 分钟前
Oracle检查点Checkpoint深度解析
数据库·oracle
rising start37 分钟前
三、深入理解MySQL索引底层
数据库·mysql
weixin_4261507044 分钟前
AI辅助Oracle容量规划:告别拍脑袋扩容
运维·数据库·人工智能·oracle