KDOC 691: Railsではカラム名やテーブル名の変更をアプリとDBの2段階に分けられる

この文書のステータス

  • 作成
    • 2026-10-18 貴島
  • レビュー
    • 2026-10-18 貴島

概要

Railsでは、モデルから見える名前とデータベースの名前をずらせる。これを使うと、カラム名やテーブル名の変更を2回のリリースに分けられる。

  1. エイリアスを足し、コードを新しい名前へ移す
  2. データベースの名前を変え、エイリアスを消す

エイリアスは、カラムなら alias_attribute :new_name, :old_name 、テーブルならモデルのクラス名を新しくして self.table_name = "old_table" とする。量の多いコードの書き換えと、戻しにくいデータベースの変更を別々のリリースにできる。 。

Allows you to make aliases for attributes.

ActiveModel::AttributeMethods::ClassMethods#alias_attribute (Rails 8.1.4)

Sets the table name explicitly.

ActiveRecord::ModelSchema::ClassMethods#table_name= (Rails 8.1.4)

関連