0

我正在关注 Ryan 设置 VPS 的 railscast。但我需要安装 mysql 而不是 postgresql。

当我运行 cap deploy:cold 命令时,一切似乎都运行良好,直到它运行捆绑包,尝试安装 mysql2 gem 时失败。

所以我登录到服务器并手动安装它(数据库已经设置好了)。

但是当我运行 rake db:migrate 命令时,我不断收到此错误:

rake aborted!
database configuration does not specify adapter

Tasks: TOP => db:migrate => db:load_config

在 database.yml 文件中,我有以下内容

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: blog_production
  pool: 5
  username: blog
  password: *****
  host: localhost
  socket: /var/run/mysqld/mysqld.sock

我已经从默认值编辑了套接字,添加和删除了主机行,并手动安装了 gem,但似乎没有任何效果!

4

2 回答 2

5

这通常发生在您的部署脚本或 VPS 上当前登录的用户尚未设置 RAILS_ENV 环境变量时。然后它默认为“开发”,并且您的 database.yml 将没有该环境的配置。所以试试

RAILS_ENV=production bundle exec rake db:migrate --trace

反而。

于 2012-05-04T08:35:13.143 回答
2

损坏的 yml 文件为我解决了这个问题。

重命名并重新创建了 database.yml 文件,它工作正常。

于 2012-11-01T20:12:46.263 回答