PostgreSQL weet niet hoe een kolom van varchar
automatisch moet worden geconverteerd in een array van varchar
. Het weet niet wat u van plan bent, omdat het niet weet in welk formaat u denkt dat de huidige waarden zijn.
Dus je moet het vertellen; dat is wat de USING
clausule is voor.
ActiveRecord lijkt de USING
. niet expliciet te ondersteunen clausule (niet verrassend, omdat het zelfs de meest elementaire databasefuncties nauwelijks ondersteunt). U kunt echter uw eigen SQL-tekst voor de migratie opgeven.
Ervan uitgaande dat uw strings door komma's zijn gescheiden en zelf geen komma's mogen bevatten, bijvoorbeeld:
def change
change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end
(Ik gebruik Rails zelf niet en heb dit niet getest, maar het is consistent met de syntaxis die elders in voorbeelden wordt gebruikt).