1

capistrano、nginx、unicorn を使用してアプリケーションをデプロイしました。以前は Apache と Passenger を使用していましたが、何か新しいことを試みています。

production.log でエラーが発生し続けますActiveRecord::StatementInvalid (Could not find table 'users')(既に確認しましたが、テーブルは MySQL に存在します)。

エラーの理由を探し続けたところ、Rails が本番データベース (mysql) ではなく開発データベース (sqlite3) を探しているように見えることがわかりました。

RailsCast 335 http://railscasts.com/episodes/335-deploying-to-a-vpsに従いましたが、Postgres の代わりに MySQL を使用しています。

私のdatabase.ymlファイルは/apps/myappname/shared/configにあり、これが含まれています(テストデータベースと開発データベースの情報はありません)...

production:
  adapter: mysql2
  database: dbname
  pool: 5
  timeout: 5000
  host: localhost
  username: db_user
  password: secret

では、Rails がデータベース アクセスのためにこのファイルを参照しないのはなぜでしょうか?

4

1 に答える 1

2

あなたはgemfileどうですか?

開発に使用するデータベースと本番用に使用するデータベースを指定する必要があります。

# make sure you place your db gems in a group block
group :development do
  gem 'sqlite3'
end

group :production do
  gem 'mysql'
end
于 2012-07-03T23:19:50.907 に答える