1. ホーム
  2. ruby-on-rails

[解決済み】RailsでActiveRecordモデルとそのテーブルの名前を変更するマイグレーションはどのように記述するのですか?

2022-03-24 22:28:06

質問

私は名前をつけるのが苦手で、Railsアプリのモデルにはもっといい名前があることに気づきました。

モデルとそれに対応するテーブルの名前を変更するために、マイグレーションを使用する方法はありますか?

解決方法を教えてください。

以下はその例です。

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::CommandRecorder は rename_table のマイグレーションを逆向きにする方法を知っているので、これを実行することができます。

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

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