Veritabanının sütun türünü, Alembic kullanarak dize ile tamsayı arasında değiştirmek istiyorum. Ben saf SQL kullanırsanız, hedefe ulaşır:Alembic/SQLAchemy'de USING deyimi nasıl kullanılır?
alter table statistic_ticket alter column tags type bigint using tags::bigint;
Ama böyle alembic kullandığınızda: sqlalchemy tarafından oluşturulan
HINT: Please use USING clause for carrying out the conversion
SQL deyimi:
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)
bir hata aldım :
ALTER TABLE statistic_ticket ALTER COLUMN tags TYPE INTEGER' {}
Ca n birisi bana op.execute(SQL)
aracılığıyla SQLemblchemy'de alembic veya SQL'de nasıl yapıldığını gösterir?
Aynı konu hakkında yayınladığınız [diğer soru] (http://stackoverflow.com/questions/20687151/how-to-use-using-clause-in-alembic). Ayrıca bu soruyu PostgreSQL olarak etiketledim, çünkü bu diğer soruyu etiketlediğiniz şeydi. Kullandığınız veritabanının, diğer veritabanını etiketlediğiniz gibi Postgresql olduğunu doğrulayabilir misiniz? Teşekkürler –
Teşekkürler, öyle görünüyor ki, sqlalchemy/alembic, postgresql üzerindeki USING maddesini desteklemiyor. – SieuTruc
Bu bilgiler için kesin bir kaynak buldunuz mu? Eğer öyleyse, o zaman sorusu için cevap işaretlemek, (Alembic "KULLANARAK" maddesini desteklemediği) sadece belirten kendi sorunuza yanıt ekleyerek tavsiye kaynağı içerecektir. –