テーブルを作ろうとしたら。
Ruby on Railsってデータベースにテーブルも作れるんだぜぃ、ちょーすげー、と喜び勇んでconfig/database.ymlを設定し、
script/generate migration create_schedules
でスクリプトのひな形を作成し、そこから定義を書いて
cd ~/scheduler rake db:migrate
とテーブルを作る魔法のコマンドを実行したら、/tmp/mysql.sockが無いと怒られた。
DarwinPortsを使ってインストールしたので、mysql.sockが作成されるディレクトリが違うのだろう、じゃ、どうやってmysql.sockの場所を変えればよいのだ、とあれやこれやと調べるとこちらにばっちりな情報が。
MySQLの設定ファイルであるmy.cnfに
[mysqld] socket=/tmp/mysql.sock [client] socket=/tmp/mysql.sock
と書けばよいとのこと。
早速、my.cnfを作成、/opt/local/etc/mysql5/に保存して先ほどの魔法のコマンドを実行。これでテーブルができるぜ、いえーい、と思ったらまた別のエラー。今度は指定したユーザーに権限がないとのこと。おかしいな、ちゃんとやったはずなのに。
今度はこちらを参考にしてRuby on Railsから使用するユーザに対して権限を設定してみる。
mysql5 -uroot -p GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON scheduler_development.* TO rails@'localhost';
今度こその願いを込めてコマンドを実行。
rake db:migrate (in /Users/hoge/scheduler) == CreateSchedules: migrating ================ -- create_table(:schedule) -> 0.0856s == CreateSchedules: migrated (0.0861s) ==========
ばっちり成功、いえーい、Ruby on Railsってちょーすげー。