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 *

相关推荐
爱可生开源社区24 分钟前
SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!
数据库·postgresql·oracle
fengye2071611 小时前
板凳-------Mysql cookbook学习 (十)
学习·mysql·adb
蓝黑20201 小时前
使用SSH tunnel访问内网的MySQL
mysql·ssh·proxy
夕泠爱吃糖1 小时前
MySQL中的部分问题(1)
数据库·mysql
百度Geek说1 小时前
Redis 数据恢复的月光宝盒,闪回到任意指定时间
数据库
秃了也弱了。2 小时前
DBSyncer:开源数据库同步利器,MySQL/Oracle/ES/SqlServer/PG/
数据库·mysql·开源
玄辰星君2 小时前
PostgreSQL 入门教程
数据库·postgresql
泽韦德2 小时前
【Redis】笔记|第9节|Redis Stack扩展功能
数据库·redis·笔记
喜欢踢足球的老罗2 小时前
使用 Spring Boot 3.3 和 JdbcTemplate 操作 MySQL 数据库
数据库·spring boot·mysql
文牧之2 小时前
PostgreSQL 的扩展pg_prewarm
运维·数据库·postgresql