PostgreSQLはvarchar
の列を自動的に変換する方法を知りません varchar
の配列に 。現在の値がどの形式であると思うかを知る方法がないため、何を意図しているのかわかりません。
だからあなたはそれを言う必要があります。それがUSING
条項はのためのものです。
ActiveRecordはUSING
を明示的にサポートしていないようです 句(最も基本的なデータベース機能さえほとんどサポートしていないので、驚くことではありません)。ただし、移行用に独自のSQLテキストを指定できます。
文字列がコンマで区切られていて、それ自体にコンマが含まれていない場合があります。例:
def change
change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end
(私はRailsを自分で使用しておらず、これをテストしていませんが、他の場所の例で使用されている構文と一致しています)。