У меня есть сценарий обновления alembic, который создает таблицу, однако я не хочу, чтобы она создавала таблицу, если она уже существует.alembic create_table, проверьте, существует ли таблица
Согласно alembic doc, я могу передать ключевые слова арг для op.create_tables
, которые являются приемлемыми для sqlalchemy.schema.table, поэтому я использую keep_existing
ключевое слово:
op.create_table('foo_model',
sa.Column('foo_id', sa.Integer(), nullable=False),
sa.Column('foo_str', sa.String(length=255), nullable=True),
sa.PrimaryKeyConstraint('foo_id'),
keep_existing= True
)
Однако я все еще получаю таблица уже существует ошибка ,
sqlalchemy.exc.InternalError: (InternalError) (1050, u"Table 'foo_model' already exists") '\nCREATE TABLE foo_model (\n\tfoo_id INTEGER NOT NULL AUTO_INCREMENT, \n\tfoo_str VARCHAR(255), \n\tPRIMARY KEY (foo_id)\n)\n\n'()
Это не решение проблемы с тем, что миграция выполняется отлично сама по себе, когда таблица уже существует. (плюс стоп-таблица потеряет данные) –