2012-04-04 1 views
0

私はRails 3.2とmysqlを使ってローカルに開発しています。私のローカルマシンは、Macで、開発のための私のdatabase.ymlのは、次のとおりです。devails、test、productionの異なるソケットを持つRailsの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の上にあり、それらに展開するときにソケットが正しく動作します。しかし、私はちょうど、マニュアルレーキを行うに行き、

を得た(2)

私のサイトの作品「/tmp/mysql.sock」ソケットを介してローカルのMySQLサーバに接続することはできませんが、私はrakeを走らせるときに何らかの形で開発を見ているので、配備のためにdatabase.ymlを別々に扱うべきかどうか不思議です。

私はそれを逃した場合は、提案を見て、同じ問題を見ていない、事前に謝罪します。私は3つの選択肢の

答えて

2

Rakeタスクを実行するときにRails環境を指定できます。

rake db:migrate RAILS_ENV=production 
+0

ありがとうございました。私はそれを試み、それは確かにレーキのために働いた。 – creativereason

+0

優秀!あなたがスタックオーバーフローを初めて知ったので、あなたと私の評判を助けるためにあなたの質問への答えとしてこれを受け入れることが自由に感じられることを指摘します。宜しくお願いします。 –

0

を考えることができます:

  • 変更あなたのdatabase.ymlのと違うだけdatabase.ymlのに
  • の使用を処理するために変更
  • 使用カピストラーノとそのsharedフォルダ内のバージョンはありません環境変数ie ENV['TEST_SOCKET']
+0

回答ありがとうございました。環境変数がうまくいくかのように聞こえます。カピストラの展開に結びつけることができるのでしょうか? – creativereason

+0

あなたのテストサーバーの '.profile'、' .bashrc'、 '.zshrc'などをシェルに入れることができます。 –

関連する問題