簡體   English   中英

在 python 中的新 Alembic 遷移中使用現有枚舉

[英]Using an existing Enum in new Alembic migration in python

我在第一次遷移中為一個模型創建了枚舉:

def upgrade() -> None:
    …
    gender_enum = postgresql.ENUM('MALE', 'FEMALE', 'OTHER', name='genderenum', create_type=False)
    gender_enum.create(op.get_bind(), checkfirst=True)
    op.add_column('user', sa.Column('gender', gender_enum, nullable=True))
    …

def downgrade() -> None:
    …
    gender_enum = sa.Enum(name='genderenum')
    gender_enum.drop(op.get_bind(), checkfirst=True)
    …

如何在新遷移中將此 Enum 與其他模型一起使用? 我不需要創建新的。 我試圖用 «checkfirst» 創建一個新的,但它還沒有創建。

還有一個問題:我使用了create_type=False ,但是類型是在 db 中創建的。 可以嗎,這個 arg 是做什么用的?

臨時解決方案:

    sql = '''
    ALTER TABLE new_user_table
    ADD COLUMN gender genderenum;
    '''
    op.execute(sql)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM