PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara mengubah tipe kolom dari variasi karakter menjadi integer menggunakan sqlalchemy-migrate

Sepertinya sqlalchemy.migrate tidak memiliki dukungan untuk merender kueri yang valid jika terjadi perubahan dari tipe kolom String ke Integer untuk postgresql.

Dalam kasus Anda, saya akan menerapkannya sebagai eksekusi kueri langsung dan melanjutkan.

def downgrade(migrate_engine):
    # ALTER TABLE courses ALTER COLUMN number SET DATA TYPE integer;
    migrate_engine.execute('ALTER TABLE courses ALTER COLUMN number TYPE INTEGER USING number::numeric')

Migrasi BTW dari String ke Integer mungkin gagal karena alasan yang berbeda - ketika nilai kolom berisi beberapa nilai yang tidak dapat dikonversi ke angka. Jadi saya akan menambahkan beberapa validasi ekstra ke dalam logika aplikasi untuk menjaga kemungkinan migrasi downgrade nanti.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memuat data RDF ke Tabel PostgreSQL melalui RDFLib-SQLAlchemy

  2. ImportError saat menjalankan cgi-bin di localhost - simbol tidak terdefinisi:lo_truncate64

  3. tidak dapat memuat perpustakaan untuk Oracle_fdw

  4. Deklaratif SQLAlchemy:mendefinisikan pemicu dan indeks (Postgres 9)

  5. Bagaimana cara mengubah string menjadi stempel waktu tanpa zona waktu