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.

Reply via email to