Chciałbym zmienić typ kolumny bazy danych z ciągu na liczbę całkowitą za pomocą Alembic. Jeśli używam czystego SQL, to osiąga cel:Jak używać klauzuli USING w Alembic/SQLAchemy?
alter table statistic_ticket alter column tags type bigint using tags::bigint;
Ale gdy używam alembic jak:
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)
mam błąd:
HINT: Please use USING clause for carrying out the conversion
instrukcji SQL generowany przez SQLAlchemy był:
ALTER TABLE statistic_ticket ALTER COLUMN tags TYPE INTEGER' {}
Ca n ktoś mi pokazać, jak to zrobić w alembic lub SQL w SQLAlchemy przez op.execute(SQL)
?
ja oczyścić swoje pytanie, w tym głosowanie, aby zamknąć [inne pytanie] (http://stackoverflow.com/questions/20687151/how-to-use-using-clause-in-alembic), które opublikowałeś na ten sam temat. Również oznaczyłem to pytanie PostgreSQL, ponieważ to właśnie oznaczyłeś drugie pytanie. Czy możesz po prostu sprawdzić, czy baza danych, z której korzystasz, to Postgresql, ponieważ oznaczono inną bazę danych? Dzięki –
Dzięki, wydaje się, że sqlalchemy/alembic nie obsługuje tej klauzuli USING na postgresql. – SieuTruc
Czy znalazłeś ostateczne źródło tych informacji? Jeśli tak, zaleciłbym dodanie odpowiedzi na własne pytanie stwierdzające, że (że Alembic nie obsługuje klauzuli "USING"), dołącz źródło, a następnie zaznacz swoją odpowiedź jako odpowiedź na pytanie. –