我刚刚使用 capistrano、nginx 和 unicorn 部署了一个应用程序。我曾经使用 Apache 和 Passenger,但我正在尝试一些新的东西。
我的 production.log 中不断出现错误ActiveRecord::StatementInvalid (Could not find table 'users')
(我已经检查过,这些表确实存在于 MySQL 中)。
我一直在寻找错误的原因,我发现 Rails 似乎正在寻找开发数据库(sqlite3)而不是生产数据库(mysql)。
我遵循 RailsCast 335 http://railscasts.com/episodes/335-deploying-to-a-vps但我使用的是 MySQL 而不是 Postgres。
我的 database.yml 文件位于 /apps/myappname/shared/config,这就是它包含的内容(没有用于测试或开发 dbs 的信息)...
production:
adapter: mysql2
database: dbname
pool: 5
timeout: 5000
host: localhost
username: db_user
password: secret
那么为什么 Rails 不查看这个文件来进行数据库访问呢?