PostgreSQL ved ikke, hvordan man automatisk konverterer en kolonne med varchar
ind i en matrix af varchar
. Den ved ikke, hvad du måske har til hensigt, fordi den ikke kan vide, hvilket format du tror, de aktuelle værdier er i.
Så du skal fortælle det; det er hvad USING
klausul er for.
ActiveRecord ser ikke ud til eksplicit at understøtte USING
klausul (ikke overraskende, da den knap understøtter selv de mest basale databasefunktioner). Du kan dog angive din egen SQL-tekst til migreringen.
Forudsat at dine strenge er kommaseparerede og måske ikke i sig selv indeholder kommaer, for eksempel:
def change
change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end
(Jeg bruger ikke Rails selv og har ikke testet dette, men det stemmer overens med den syntaks, der bruges i eksempler andre steder).