python - 未检测到架构更改
问题描述
环境: alembic==0.8.4 SQLAlchemy==1.0.10 Flask==0.10.1 flask-marshmallow==0.6.2 Flask-Migrate==1.6.0 Flask-RESTful==0.3.4 flask-restful-swagger= =0.19 Flask-Script==2.0.5 Flask-SSLify==0.1.5
带有迁移文件的数据库模型原始
from sqlalchemy import Column
from sqlalchemy.dialects.mysql import INTEGER
import enum
from sqlalchemy.dialects.mysql import ENUM
from mapping_service.app import db
class MappingStatusEnum(enum.Enum):
OVERRIDDEN = 'overridden'
SUGGESTION = 'suggestion'
@staticmethod
def list():
return list(map(lambda status: status.value, MappingStatusEnum))
class MappingStatus(db.Model):
__tablename__ = "MappingStatus"
__table_args__ = {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'}
id = Column(INTEGER(unsigned=True),
primary_key=True,
autoincrement=True,
nullable=False)
status = Column(ENUM(*MappingStatusEnum.list()), unique=True, nullable=False)
数据库模型已更改,但未检测到架构更改
class MappingStatusEnum(enum.Enum):
OVERRIDDEN = 'overridden'
SUGGESTION = 'suggestion'
REJECTED = 'rejected'
FAILED = 'failed'
如您所见,我已经更改了可能的状态并添加了两个新状态。执行时
python manange.py 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.
我该怎么做才能让 alembic 看到架构更改并创建适当的迁移文件?我不是 Flask,SQLAlchemy 精通,所以我可能会做一些我无法弄清楚的非常愚蠢的事情。
解决方案
推荐阅读
- reactjs - 如何在无状态 React 组件中单击按钮获取输入值?
- java - Android倒数计时器:添加小时
- git - 文件名中的“+”字符导致 git blame 失败
- php - 发送多个数组以在 codeigniter 中查看
- c# - (Visual Studio 2015 - 2017)不创建文件夹(目录),也不在 Properties.settings 中保存任何值
- algorithm - 最长递增子序列的长度,O(n) 复杂度
- css - Visual Studio Code 无法识别 CSS 文件中的变量
- python - 捕获丢失文件的 Tkinter 异常
- android - 从未显示在 ImageView 中的图库或相机照片中选择
- python - 多列上的 Pandas get_dummies