在我能够创建枚举之前使用flask-migrate,方法是使用flask-sqlalchemy的db.Enum并将值作为字符串输入,如下所示。
reservation_status = db.Enum('pending', 'confirmed, name='reservation_status_enum')我决定开始使用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)
...当我尝试使用迁移命令时,我在生成的代码中得到一个无效的语法错误,如下所示。该错误与写入文件的内容完全相同。
sa.Column('status', sa.Enum(<enum 'Status'>, name='reservation_status_enum'), nullable=True),
^
SyntaxError: invalid syntax发布于 2016-08-27 21:52:52
多亏了user @dim,我能够通过将sqlalchemy升级到beta 1.1.0b3来解决这个问题。像大多数情况一样,这是用户错误(我)。
我所做的就是
pip uninstall sqlalchemy
pip install sqlalchemy==1.1.0b3https://stackoverflow.com/questions/39181294
复制相似问题