Rails 3,nginx和独角兽。如果我正在制作中,为什么Rails会寻找开发数据库?

时间:2012-07-03 23:08:27

标签: ruby-on-rails ruby nginx unicorn

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

1 个答案:

答案 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