見出し画像

Railsでテーブルのカラム名を間違った時に変更する方法

開発をしていると、一度実装したものを変更しないといけないケースが多々発生しますよね。単純にミスで修正しないといけない場合もあれば、仕様変更でやむを得ず変更をしないといけない時もあります。


Ruby on RailsでWeb開発をしている場合に、テーブルのカラム名(項目名)を修正したい場合の手順について書いておきます。


1.変更用のマイグレーションファイルを作成する

最初に以下のコマンドでテーブル定義の変更用マイグレーションファイルを作成します。

rails generate migration rename_account_name_column_to_Accounts

上記コマンドの末尾にある『Accounts』がモデル名で、ここは複数形で指定します。次に指定したモデルの中の変更したい項目はrenameの後の『account_name』の部分です。

モデル名と変更したいカラム名の部分を、修正したい内容に置き換えてコマンドを実行してください。


2.マイグレーションファイルの修正

上記1.が正常に終了すると次のような内容でマイグレーションファイルが作成されているはずです。

class RenameAccountNameColumnToAccounts < ActiveRecord::Migration[5.2]
  def change
  end
end


そのファイルのchangeアクションに変更内容を定義します。次のようなイメージです。

class RenameAccountNameColumnToAccounts < ActiveRecord::Migration[5.2]
  def change
    rename_column :accounts, :account_name, :name
  end
end

最初の『:accounts』が対象のモデル名、次の『:account_name』が変更前のカラム名、最後の『:name』が変更後のカラム名です。

つまり、Accountsテーブルにあるaccount_nameというカラムの名称を、nameに変更した形です。


3.データベースに反映させる

最後に次のコマンドでマイグレーションファイルの内容をデータベースに反映させます。

rails db:migrate


本番稼働し始めたら、既存のテーブル項目を変更することは、そんなにありませんが、開発中はカラム名を変更するケースもあるので、覚えておくと良いと思います。


この記事が気に入ったらサポートをしてみませんか?