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

Rel Migrasi mengubah kolom untuk menggunakan array Postgres

PostgreSQL tidak tahu cara otomatis mengonversi kolom varchar ke dalam larik varchar . Ia tidak tahu apa yang mungkin Anda maksudkan, karena ia tidak memiliki cara untuk mengetahui format apa yang menurut Anda berisi nilai-nilai saat ini.

Jadi, Anda perlu menceritakannya; itulah yang USING klausa adalah untuk.

ActiveRecord tampaknya tidak secara eksplisit mendukung USING klausa (tidak mengherankan, karena hampir tidak mendukung bahkan fitur database yang paling dasar). Anda dapat menentukan teks SQL Anda sendiri untuk migrasi.

Dengan asumsi string Anda dipisahkan koma dan mungkin tidak mengandung koma, misalnya:

def change
  change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end

(Saya sendiri tidak menggunakan Rails dan belum menguji ini, tetapi konsisten dengan sintaks yang digunakan dalam contoh di tempat lain).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL Naik Daun:Temuan Postgres 2018 &Tren 2019

  2. Fungsi GREATEST() di PostgreSQL

  3. Dapatkan nama tabel sumber baris saat menanyakan induk yang diwarisinya

  4. Menggunakan kolom Alias ​​​​di klausa where di Postgresql

  5. Menggunakan docker-compose untuk membuat tabel di database postgresql