Как использовать предложение USING в Alembic / SQLAchemy?

Я хотел бы изменить тип столбца базы данных из строки в целое, используя Alembic. Если я использую чистый SQL, он достигает цели:

alter table statistic_ticket alter column tags type bigint using tags::bigint; 

Но когда я использую Alembic как:

 import sqlalchemy as sa def upgrade(): op.alter_column('statistic_ticket', 'tags', nullable = True, existing_type=sa.String(length=255), type_=sa.Integer, existing_nullable=True) 

У меня ошибка:

 HINT: Please use USING clause for carrying out the conversion 

Оператор SQL, созданный SQLAlchemy, был:

 ALTER TABLE statistic_ticket ALTER COLUMN tags TYPE INTEGER' {} 

Может ли кто-нибудь показать мне, как это сделать в alembic или SQL в SQLAlchemy через op.execute(SQL) ?

One Solution collect form web for “Как использовать предложение USING в Alembic / SQLAchemy?”

Из Alembic 0.8.8 вы можете использовать ключевое слово postgresql_using :

 op.alter_column('statistic_ticket', 'tags', type_=sa.BigInteger, postgresql_using='tags::bigint') 

В предыдущих версиях вы должны использовать op.execute :

 op.execute('ALTER TABLE statistic_ticket ALTER COLUMN ' 'tags TYPE bigint USING tags::bigint') 
  • Alembic автоматически генерирует миграцию Flask-SQLAlchemy
  • Изменить первичный ключ в Alembic?
  • Первоначальная миграция Alembic - sqlalchemy
  • Извлечь значения таблицы с помощью alembic и обновить другую таблицу.
  • Flask-SQLAlchemy Lower Case Index - пропуск функциональности, не поддерживаемый отражением SQLAlchemy
  • Alembic: alembic revision говорит об ошибке импорта
  • Alembic: Как перенести пользовательский тип в модель?
  • Создание данных семян в миграциях с флягой или миграции
  • Python - лучший язык программирования в мире.