rails/良く行う作業手順 の履歴(No.4)
更新概要†
rails は便利なのですが、 たまにしか触らない「なんちゃって Web デベロッパー」としては、 そのつど rails の規約を思い出すのが苦痛なのです。
そこで、思い出せなかった手順をここにメモろうという魂胆です。
環境は Debian 上の apache2 上の fastcgi です。
データベースにカラムを追加する†
まずは現状を確認します。
sqlite3 の使い方はこちらを参照しました。 http://tterry.blog.so-net.ne.jp/2008-03-19-1
$ 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
$ ./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
エラーが出た時に参照すべきログファイル†
apache2 のログファイルが /var/log/apache2/* にあるので、 まずはこれを参照します。
rails 固有のメッセージはプロジェクトフォルダの下の
(rails)/log/*.log
にあるので、これを見ればよいようです。
コメント†
Counter: 6785 (from 2010/06/03),
today: 3,
yesterday: 2