我刚刚使用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没有查看此文件以进行数据库访问?
答案 0 :(得分: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