RoR続き

再起動後の謎

昨日、他のマシンからブラウザ越しにRoRの初期画面が出ることを確認した。
が、今朝サーバを立ち上げた直後に ruby test/script/server して、他のマシン越しから見ようとすると、アクセス不能であった。
確認のため、サーバのブラウザで http://localhost:3000/ すると見える。ここでlocalhostの代わりにIP打ち込んでも見える。その後、先ほどアクセスできなかった別マシンからブラウザで見えるようになった。謎。
しかしながら、謎解きは一時保留とする。

RoRでデータベースをMySQLにする

昨日作ったデータベースは、sqlite3だった。rails2.0.2からはデフォルトがMySQLから変わったらしい。
詳しくはここに書いてあります。
http://nyon2.net/archives/2008/01/ruby-on-rails-1.html
ここのやり方をそのまま踏襲して、私もBMDSという既存のデータベースに対して作り直し。

> cd /RoR_test
> rails -d mysql BMDS
create
create app/controllers
create app/helpers
create app/models
……

BMDSというディレクトリが作られています。開発用のdevelopmentというデータベースを設定します。
編集するファイルは./BMDS/config/databases.ymlです。ここで既存のMySQLの設定にしたがってユーザ名やパスワードを入れます。databases.ymlのdevelopment:部分の抜粋

development:
adapter: mysql   ← sqlite3ではないことを確認
encoding: utf8
database: BMDS_development
pool: 5
username: root   ←自分の環境にあわせて設定する
password:      ←自分の環境に合わせる
socket: /var/lib/mysql/mysql.sock

次に、rake db:create:allを試したが、mysql.rbドライバはrails2.2にはないので、gem install mysqlをするようにと怒られた。
支持に従い、gemしたが、以下のようにエラーとなってだめ。gem_make.outもコマンドラインと同じエラー文。

Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /usr/lib64/ruby/gems/1.8/gems/mysql-2.7/gem_make.out

しようがないので、手動でデータベースを作成する

>cd /RoR_test/BMDS
>mysql -u*** -p***
mysql> create database BMDS_development;
mysql> quit

データベースにテーブルを用意する。

ruby script/generate model bmds_v5

モデルファイル  app/models/bmds_v5.rb
テーブル生成のためのコード db/migrate/YYYYMMDDhhmmss_create_bmds_v5s.rb
このmigrateファイルにフィールド定義を追加する。