Я пытаюсь автоматизировать обновление базы данных для проекта, написанного на Flask. Я использую перегонный куб для 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 ###
Спасибо.
Test
. Как я вижу, у вас проблемы с модельюTest
, но не сAccount
. ГдеTest
перенос модели? Кстати, у тебя нетprimary_key
. - person Danila Ganchar   schedule 24.10.2018