簡體   English   中英

Rails database.yml 在開發、測試和生產中配置不同的 sockets

[英]Rails database.yml configuration with different sockets on dev, test and production

所以我在本地使用 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 時以某種方式查看開發?

尋找建議但沒有看到相同的問題,如果我錯過了,請提前道歉。

您可以在運行 Rake 任務時指定 Rails 環境。

rake db:migrate RAILS_ENV=production

我可以想到三種選擇:

  • 更改您的 database.yml 並且不要對更改進行版本控制
  • 使用capistrano及其shared文件夾來處理不同的database.yml
  • 使用環境變量即ENV['TEST_SOCKET']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM