Я использую Alembic в качестве инструмента миграции и запускаю следующий псевдоскрипт в уже обновленной базе данных (нет записей ревизий для Alembic, схема базы данных только что обновлена).
revision = '1067fd2d11c8'
down_revision = None
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column('box', sa.Column('has_data', sa.Boolean, server_default='0'))
def downgrade():
pass
Это дает мне следующую ошибку только с PostgreSQL (с MySQL все хорошо):
INFO [alembic.migration] Context impl PostgresqlImpl.
INFO [alembic.migration] Will assume transactional DDL.
INFO [root] (ProgrammingError) ERREUR: la colonne « has_data » de la relation « box » existe déjà
Последняя строка означает, что столбец has_data
уже существует.
Я хочу проверить, что столбец существует до op.add_column
.