0
当运行在我的瓶的应用程序的Postgres数据库迁移我得到一个枚举类型以下psycopg2错误:psycopg2.ProgrammingError对瓶(数据库)数据库迁移枚举类型
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> 8753d3c9dbd1, empty message
Traceback (most recent call last):
File "/home/jul/.miniconda3/envs/audiolabeling/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
context)
File "/home/jul/.miniconda3/envs/audiolabeling/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
cursor.execute(statement, parameters)
psycopg2.ProgrammingError: type "feedbacktype" already exists
我试图删除alembic_version表和迁移文件夹并重新运行flask db init/migrate/upgrade,但没有成功。我不得不放弃数据库来解决这个问题。
有什么方法可以在已经存在的情况下不重新创建类型?
models.py
from audiolabeling import db
import enum
class FeedBackType(enum.Enum):
NONE = "none"
HIDDENIMAGE = "hiddenImage"
class Task(db.Model):
id = db.Column(db.Integer, primary_key=True)
feedback = db.Column(db.Enum(FeedBackType))
def __repr__(self):
return '<id {}>'.format(self.id)
如果我想在几个表中使用这个枚举怎么办? – jul
您可以定义一个由构成枚举类型的值组成的列表。并将其解压缩到您想要定义枚举类型字段的位置。 – stamaimer