rails/良く行う作業手順 のバックアップ差分(No.1)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[公開メモ]]

#contents

* 概要 [#i14bc724]

rails は便利なのですが、
たまにしか触らない「なんちゃって Web デベロッパー」としては、
そのつど rails の規約を思い出すのが苦痛なので、
思い出せなかった手順をここにメモろうという魂胆です。

* データベースにカラムを追加する [#h11a18ee]

まずは現状を確認します。

sqlite3 の使い方はこちらを参照しました。
http://tterry.blog.so-net.ne.jp/2008-03-19-1

 LANG:console
 $ sqlite3 db/production.sqlite3
  sqlite3> .schema some_entries
   CREATE TABLE "some_entries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 
   "column1" integer, "column2" boolean, "column3" integer, "column4" boolean, 
   "column5" date, "column6" date, "column7" integer, 
   "column8" text, "column9" text, "column10" text, "column11" boolean, 
   "changed_at" datetime, "created_at" datetime,
   "deleted" boolean DEFAULT 'f' NOT NULL);
  sqlite> .quit
 $ 

これまでのカラムの命名法を参考に、
フィールド名を column12 に決めたとします。

次にマイグレーション用のひな型を作って、それを編集します。

rake migrate の使い方はこちらを参照しました。
http://tech.feedforce.jp/railsmigration.html

 LANG:console
 $ ./script/generate migration add_column12_to_some_entries
      exists  db/migrate
      create  db/migrate/20101018065146_add_column12_to_some_entries.rb
 $ jed db/migrate/20101018065146_add_column12_to_some_entries.rb
  class AddColumn12ToSomeEntries < ActiveRecord::Migration
    def self.up
        add_column :some_entries, :column12, :text
    end
  
    def self.down
        remove_column :some_entries, :column12, :text
    end
  end
 $

そしてマイグレーション。

 $ rake db:migrate
  (in /home/samba/www/event/rails/ICSPM18)
  ==  AddRegistrationsPayaccount: migrating =====================================
  -- add_column(:registrations, :payaccount, :text)
     -> 0.0546s
  ==  AddRegistrationsPayaccount: migrated (0.0549s) ============================
 $

これで development 環境が更新されます。

production 環境も追加するなら、次を行うわけですが・・・

 $ rake RAILS_ENV=production db:migrate
  (in /home/samba/www/event/rails/ICSPM18)
  ==  AddRegistrationsPayaccount: migrating =====================================
  -- add_column(:registrations, :payaccount, :text)
     -> 0.0831s
  ==  AddRegistrationsPayaccount: migrated (0.0837s) ============================
 $

これに気づかず1時間くらい考え込んだりするわけです(TT

* エラーが出た時に参照するログファイル [#o9194703]

apache2 のログファイルが /var/log/apache2/* にあるので、
まずはこれを参照します。

が、rails 固有のメッセージはプロジェクトフォルダの下の~
(rails)/log/*.log ~
にあるので、これを見ればよいようです。


Counter: 6186 (from 2010/06/03), today: 1, yesterday: 0