1. ホーム
  2. スクリプト・コラム
  3. ルビートピックス

Ruby on Railsのマイグレーションに関するいくつかの考慮点

2022-02-12 10:55:11


    schema.rbをバージョン管理下に保存します。
    空のデータベースを初期化するために、rake db:migrate の代わりに rake db:scheme:load を使用します。
    テスト用データベースのスキーマを更新するには、rake db:test:prepare を使用します。

    テーブルにデフォルトデータを設定しないようにする。代わりにモデルレイヤーを使ってください。

  def amount
   self[:amount] or 0
  end



    しかし、self[:attr_name] の使用はかなり一般的であると考えられており、代わりにもっと冗長な(そして議論の余地がある) read_attribute を使うことも考慮すべきかもしれません。

def amount
   read_attribute(:amount) or 0
  end


    構成的なマイグレーション (テーブルやカラムの結合) を書くときは、Rails 3.1 の新しいマイグレーション方法 - up および down メソッドの代わりに change メソッドを使用する - を使用します。


 # The way it used to be
  class AddNameToPerson < ActiveRecord::Migration
   def up
    add_column :persons, :name, :string
   end

   def down
    remove_column :person, :name
   end
  end

  # New preferences
  class AddNameToPerson < ActiveRecord::Migration
   def change
    add_column :persons, :name, :string
   end
  end