Hi Michael,
On Mon, Dec 16, 2013 at 12:37 AM, Michael Bayer <mike...@zzzcomputing.com>wrote: > > On Dec 15, 2013, at 4:16 AM, Hồng Quân Nguyễn <ng.hong.q...@gmail.com> > wrote: > > Hi all, > > Assume that I have this model > > class ModelA: > gender = Column(Enum('male', 'female', name='gender_type')) > > and in another ModelB, I want to reuse this gender_type Enum, how should I > reuse, because if I write > > class ModelB: > gender = Column(Enum('male', 'female', name='gender_type')) > > I will get error about "conflict when creating new Enum type”. > > > assuming you’re on Postgresql, where there is a specific type created on > the backend. > > Start like this: > > gender_type = Enum(‘male’, ‘female’, name=‘gender_type’) > > then any number of column objects can use it: > > Column(gender_type) > > or start with the PG type: > > from sqlalchemy.dialects.postgresql import ENUM > gender_type = ENUM(‘male’, ‘female’, name=‘gender_type’) > > then additional columns can use the same type, but create_type=False: > > Column(ENUM(‘male’, ‘female’, name=‘gender_type’, create_type=False)) > > unfortunately the “create_type” argument is not on the base Enum type > right now (looking into adding that). > Before, I had gender_type declared inline in model A (gender = Column(Enum('male', 'female', name='gender_type'))). Now I add model B and also want to reuse the gender_type in model A. So, I bring gender_type out and link to it from model A & B. But when I use Alembic to create migration script, I got this for model B (new-added): def upgrade(): ... gender = sa.Column('gender', sa.Enum('male', 'female', name='gender_types'), nullable=True) ... It means the migration script tries to create new Enum, instead reuse it. How should I edit the migration script to make it do what I want? Thank you in advance. -- *********************************************** * Nguyễn Hồng Quân * * Y!M: ng_hquan_vn * * Facebook: ng.hong.quan * * Web: quan.hoabinh.vn * *********************************************** -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.