Rails カラムの削除と追加


作業メモ。

TEXT型からINT型に変換したい時はchange_columnしようとしても精度が合わず失敗する場合がある。

Caused by:
PG::DatatypeMismatch: ERROR:  列"typo_column"は型bigintには自動的に型変換できません
HINT:  必要に応じて"USING typo_column::bigint"を追加してください。

DROPしてADDするのが手取り早い。 メソッドはdrop_columnではなく、remove_columnなので注意。

class ChangeTypoColumnToFooTable < ActiveRecord::Migration[5.2]
  def change
    remove_column :foo_table, :typo_column
    add_column :foo_table, :valid_column, :bigint
  end
end