【问题标题】:new value in class Enum rejected by database数据库拒绝枚举类中的新值
【发布时间】:2018-11-20 15:32:15
【问题描述】:

我的 models.py 文件中有这个类:

class DepartmentCategory(Enum):
    """The various categories of departments"""
    committee = 'Committee'
    subcommittee = 'Subcommittee'

在我的表单的选择字段中使用。一切正常,但是当我向 Enum 类添加一个新值时,例如:

class DepartmentCategory(Enum):
    """The various categories of departments"""
    general = 'General'
    committee = 'Committee'
    subcommittee = 'Subcommittee'

保存新值数据库失败并且在终端和浏览器中都没有显示错误。我已经多次迁移(flask db migrate)和升级(flask db upgrade)我的数据库,但问题没有解决。请帮忙。

【问题讨论】:

    标签: python mysql enums sqlalchemy


    【解决方案1】:

    尝试安装enum34。当我在 Python3-x 上使用 enum 时,我发现 flask_migrate 无法检测到更改。然后我看到了这个问题中的cmetsDefining SQLAlchemy enum column with Python enum raises "ValueError: not a valid enum"

    pip install enum34

    注意:继续使用import enumimport enum34是错误的。

    【讨论】:

      【解决方案2】:

      您需要迁移您的数据库定义,例如使用https://pypi.org/project/alembic/

      【讨论】:

      • 如果您的意思是运行 flask db migrate 然后 flask db upgrade,我已经这样做了。我正在使用 Flask-Migrate
      猜你喜欢
      • 1970-01-01
      • 2019-10-02
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多