PostgreSQL neví, jak automaticky převést sloupec varchar
do pole varchar
. Neví, co byste mohli zamýšlet, protože nemá žádný způsob, jak zjistit, v jakém formátu si myslíte, že jsou aktuální hodnoty.
Takže to musíte říct; to je to, co USING
doložka je pro.
Zdá se, že ActiveRecord explicitně nepodporuje USING
klauzule (není překvapivé, protože sotva podporuje i ty nejzákladnější databázové funkce). Pro migraci však můžete zadat svůj vlastní text SQL.
Za předpokladu, že vaše řetězce jsou odděleny čárkami a samy o sobě čárky nemusí obsahovat, například:
def change
change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end
(Sám Rails nepoužívám a netestoval jsem to, ale je to v souladu se syntaxí použitou v příkladech jinde.)