KDOC 691: Railsではカラム名やテーブル名の変更をアプリとDBの2段階に分けられる
この文書のステータス
- 作成
- 2026-10-18 貴島
- レビュー
- 2026-10-18 貴島
概要
Railsでは、モデルから見える名前とデータベースの名前をずらせる。これを使うと、カラム名やテーブル名の変更を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)
関連
- 補足: KDOC 593: 安全なマイグレーション手法をチームに導入する。Expand and Contractの、名前を変えるときの具体策