How to create ENUM in SQLAlchemy?

匿名 (未验证) 提交于 2019-12-03 08:39:56

问题:

from sqlalchemy import * from migrate import *  meta = MetaData() race_enums = ('asian','mideastern','black','nativeamerican','indian','pacific','hispanic','white','other'); profiles_profiles = Table(     'profiles_profiles', meta,     Column('id', Integer, primary_key = True),     Column('user_id', Integer, nullable=False, unique=True),     Column('race', Enum, race_enums),     Column('summary', Text, nullable= True),     Column('my_life', Text, nullable= True),     Column('to_do', Text, nullable= True),     Column('favs', Text, nullable= True),     Column('created_at', DateTime, nullable=True),     Column('updated_at', DateTime, nullable=True) )  def upgrade(migrate_engine):     meta.bind = migrate_engine     profiles_profiles.create()     pass  def downgrade(migrate_engine):     meta.bind = migrate_engine     profiles_profiles.drop()     pass 

When I manage.py upgrade this, I get this error:

AttributeError: 'tuple' object has no attribute '_set_parent_with_dispatch' 

回答1:

You need pass race_enum as an argument for Enum, not Column

You can either pass in your tuple as whole

Column('race', Enum('asian','mideastern','black','nativeamerican','indian','pacific','hispanic','white','other')) 

or use * to unpack race_enums:

Column('race', Enum(*race_enums)) 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!