PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Колоната за промяна на миграцията на Rails за използване на Postgres масиви

PostgreSQL не знае как автоматично да преобразува колона от varchar в масив от varchar . Той не знае какво може да възнамерявате, защото няма начин да разбере в какъв формат смятате, че са текущите стойности.

Така че трябва да го кажете; това е, което USING клаузата е за.

Изглежда ActiveRecord не поддържа изрично USING клауза (не е изненадващо, тъй като почти не поддържа дори най-основните функции на базата данни). Можете обаче да посочите свой собствен SQL текст за миграцията.

Ако приемем, че вашите низове са разделени със запетая и може да не съдържат запетаи, например:

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

(Аз самият не използвам Rails и не съм тествал това, но е в съответствие със синтаксиса, използван в примери другаде).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте уникално ограничение с нулеви колони

  2. Upsert с транзакция

  3. Как да получа текущото име на часовата зона в Postgres 9.3?

  4. Как да създадете уникален индекс, където редът на колоните не се взема предвид (задава?)

  5. 5 начина да проверите дали таблица съществува в PostgreSQL