无法删除Postgres枚举

2024-03-29 01:33:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个博士后的数字。它是通过sql炼金术定义的,如下所示:

sa.Column('state', postgresql.ENUM(u'ACTIVE', u'STOPPED', u'FAILED', name='ProcessState'), nullable=True),

我无法移除它,但它似乎也不存在:

^{pr2}$

我不知所措。它似乎同时存在和不存在,我无法删除或重新添加它。使用SQL Alchemy重新添加会导致错误:

File "python2.7/site-packages/sqlalchemy/engine/default.py", line 462, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) type "ProcessState" already exists
 [SQL: 'CREATE TYPE "ProcessState" AS ENUM (\'ACTIVE\', \'STOPPED\', \'FAILED\')']

你知道怎么回事吗?有什么办法解决这个问题吗?我希望能够可靠地添加和删除此类型(而不必删除整个数据库)。


Tags: executesql定义sqlalchemysacolumn数字enum