本番環境でテーブルがないと怒られた
Railsには、テスト用・開発用・本番用の3つ環境が用意されています。
詳しくはレシピ177に載っています。
- 作者: 高橋征義,諸橋恭介
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2008/05/31
- メディア: 単行本
- 購入: 37人 クリック: 567回
- この商品を含むブログ (95件) を見る
各環境の切り替え
実行モード | 説明 |
---|---|
RAILS_ENV=production | 本番用 |
RAILS_ENV=development | 開発用 |
RAILS_ENV=test | テスト用 |
各環境を呼び出すには、表のようなオプションを付けることでできます。
例えば、本番環境でサーバを動かすには
env RAILS_ENV="production" mongrel_rails start
のようにします。
テーブルがないエラー
上のように本番環境で起動させて、アプリを見たところ
以下のようなエラーが表示されました。
We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly.
エラーの通り"/log/production.log"を見てみると、以下のような内容が
ActiveRecord::StatementInvalid (Could not find table 'tablenames'):
...
...
どうもtablenamesテーブルが見つからないとのこと。
本番用にもマイグレーションする必要があるようです。
そこで以下のようにオプションを付けて実行。
rake RAILS_ENV=production db:migrate
無事表示されるようになりました。
この方法が正しいのかわかりませんが。
イマイチ開発から本番へのやり方が理解できていない。