Rails で ActiveRecord モデルとそのテーブルの名前を変更する移行をどのように記述しますか? 質問する

Rails で ActiveRecord モデルとそのテーブルの名前を変更する移行をどのように記述しますか? 質問する

私は名前を付けるのが苦手で、Rails アプリのモデルにはもっと良い名前があることに気付きました。
移行を使用してモデルとそれに対応するテーブルの名前を変更する方法はありますか?

ベストアンサー1

次に例を示します。

class RenameOldTableToNewTable < ActiveRecord::Migration
  def self.up
    rename_table :old_table_name, :new_table_name
  end

  def self.down
    rename_table :new_table_name, :old_table_name
  end
end

モデル宣言ファイルの名前を手動で変更する必要がありました。

編集:

Rails 3.1 および 4 では、ActiveRecord::Migration::CommandRecorderrename_table 移行を元に戻す方法がわかっているので、次のように実行できます。

class RenameOldTableToNewTable < ActiveRecord::Migration
  def change
    rename_table :old_table_name, :new_table_name
  end 
end

(それでも、手動でファイルの名前を変更する必要があります。)

おすすめ記事