Flask-Alembic错误sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError)类型不存在

时间:2018-10-20 03:30:57

标签: postgresql flask database-migration alembic

我正在尝试为Flask编写的项目自动升级数据库。我将Alembic用于Flask。

问题是,当我使用多个枚举时,它总是在第二个枚举上运行错误,我不明白为什么以及如何解决它。

文件enums.py:

from enum import Enum

class A(Enum):
    i = 'i'
    a = 'a'

class B(Enum):
    a = 'a'
    b = 'b'

使用它们的模型:

from enums import A, B

class Test(db.Model):
    status_a = db.Column(db.Enum(A)) 
    status_b = db.Column(db.Enum(B))

现在我正在升级:

from libs import alembic
alembic.revision()
alembic.upgrade()

它总是在第二个枚举上捕获错误:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) type "b" does not exist

该怎么办?我找到了一些解决方案,但是我不知道如何使用它们,也不完全了解正在发生的事情。

更新:迁移代码:

def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('Account', sa.Column('activity_status', sa.Enum('inactive1', 'active1', name='abd'), nullable=True))
op.drop_column('Account', 'valid_status')
# ### end Alembic commands ###

谢谢。

0 个答案:

没有答案