python - Flask-Migrate 模型中的枚举类有问题

标签 python flask enums sqlalchemy alembic

在我能够通过使用 flask-sqlalchemy 的 db.Enum 并以字符串形式输入值来创建枚举之前使用 flask-migrate。

reservation_status = db.Enum('pending', 'confirmed, name='reservation_status_enum')

我决定开始使用如下枚举类。根据sqlalchemy docs工作正常。

class Status(enum.Enum):
    pending = 'pending'
    confirmed = 'confirmed'
    rejected = 'rejected'
    abandoned = 'abandoned'

reservation_status = db.Enum(Status, name='reservation_status_enum')

class Reservation(db.Model):
    __tablename__ = 'reservations'

    id = db.Column(db.Integer, primary_key=True)
    status = db.Column(reservation_status, default=Status.pending)
    ...

当我尝试使用 migrate 命令时,我在生成的代码中收到无效语法错误,如下所示。错误正是写入文件的内容。

    sa.Column('status', sa.Enum(<enum 'Status'>, name='reservation_status_enum'), nullable=True),
                            ^
SyntaxError: invalid syntax

最佳答案

感谢用户@dim,我能够通过将 sqlalchemy 升级到 beta 1.1.0b3 来解决问题。在大多数情况下,这是用户错误(我)。

我所做的只是

pip uninstall sqlalchemy
pip install sqlalchemy==1.1.0b3

关于python - Flask-Migrate 模型中的枚举类有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39181294/

相关文章:

java - 我如何将枚举与其相反的值关联起来,如在基本方向(北 - 南,东 - 西等)上?

java - 如何在 hibernate 中将枚举序号映射到它的值?

python - Numpy 数组 View 和垃圾收集

python - 找不到资源错误: When Reading CSV from Azure Blob using Pandas with its SAS URL

python - 从 String 在 python 中写入 TIFF 文件

Python:从循环返回值而不中断

python - 如何渲染和返回图以在 flask 中查看?

python - 有没有办法在每个 uwsgi worker 中运行初始化代码( fork 后)

python-2.7 - 使用 jinja2 生成随机数

c++ - 为什么我不能分配错误的枚举元素,但可以与错误的枚举元素进行比较?