2.0.2 になる前はデフォルトが MySQL だったのでそれを SQLite3 にしようとした先人達の情報によると、方法としては幾つかあるようだ。
- skelton の使用を諦めて、手動で rails -d mysql する
- config/database.yml を手動で MySQL 用に書き換える
- RadRails の設定でどうにかする
- RoR の設定でどうにかする
2. のやり方は、一番原始的だけどスマートじゃないのでパス
3. のやり方は、RadRails に指定している rails の path のところをうまく細工すればいくかな? と思ってやってみた。InstantRails の ruby\bin\rails は Ruby スクリプトなので、うまく細工すれば -d mysql のオプションをつけるなどしていけると思ったが、やり方がわからず断念。同じディレクトリに rails.bat や rails.cmd といった MSDOS スクリプトもあるが、これらをいじってもダメだったので、結局諦めた
で、最後は 4. のやり方だ。
InstantRails 以下の ruby/lib/ruby/gems/1.8/gems/rails-2.0.2 を sqlite3 でサーチしたところ、lib/rails_generator/generators/applications/app/app_generator.rb 内にそれらしい記述があった。見ると、default_options :db => (ENV["RAILS_DEFAULT_DATABASE"] || "sqlite3"), という
記述になっていた。
ということは、RAILS_DEFAULT_DATABASE を mysql にしてあげればうまくいきそうだ。しかし、結局これはうまくいかなかった。うまく環境変数が渡せなかったようだ。
で、結局どうしたかというと、上記の app_generator.rb をいじって、最後の "sqlite3" の部分を "mysql" に書き換えた。とても最善の方法とは言えないが、とりあえずこれでどうにかなったので、もっといい方法が見つかるまでこれでいくことにした。
0 件のコメント:
コメントを投稿