0

所以我在本地使用 Rails 3.2 和 mysql 进行开发。我的本地机器是 Mac,我用于开发的 database.yml 是:

development:
    adapter: mysql2
    database: dbname
    encoding: utf8
    host: localhost 
    port: 3306
    timeout: 5000
    socket: /tmp/mysql.sock

为了测试它

test:
    adapter: mysql2
    database: dbname
    encoding: utf8
    host: localhost 
    port: 3306
    timeout: 5000
    socket: /var/lib/mysql/mysql.sock

测试和生产服务器在 CentOS 上,并且套接字在部署到它们时可以正常工作。但是我只是去做了一个手动耙子并得到了

无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)

我的网站可以工作,但我很好奇我是否应该单独处理 database.yml 进行部署,因为它在我运行 rake 时会以某种方式查看开发?

寻找建议并没有看到相同的问题,如果我错过了,请提前道歉。

4

2 回答 2

2

您可以在运行 Rake 任务时指定 Rails 环境。

rake db:migrate RAILS_ENV=production
于 2012-04-04T00:30:38.013 回答
0

我可以想到三种选择:

  • 更改您的 database.yml 并且不要在更改中进行版本化
  • 使用 capistrano 及其shared文件夹来处理不同的 database.yml
  • 使用环境变量,即ENV['TEST_SOCKET']
于 2012-04-04T00:22:59.093 回答