0

だから私はRails3.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)

私のサイトは機能しますが、rakeを実行するとどういうわけか開発を検討しているので、デプロイメント用にdatabase.ymlを個別に処理する必要があるかどうか知りたいです。

提案を探しましたが、同じ問題は見つかりませんでした。見逃した場合は、事前にお詫び申し上げます。

4

2 に答える 2

2

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

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

私は3つの選択肢を考えることができます:

  • database.yml を変更し、変更をバージョン管理しないでください
  • capistrano とそのsharedフォルダーを使用して、異なる database.yml を処理します
  • 環境変数を使用します。ENV['TEST_SOCKET']
于 2012-04-04T00:22:59.093 に答える