2016-10-06 1 views
1

データベースの.ymlが.gitignoreに追加されているので、devsはローカル環境をカスタマイズでき、運用サーバーにはENV['DATABASE_URL']を使用する予定です。デフォルト設定では、これが機能します。ただし、encodingcollationutf8mb4を設定する必要があります。Rails 5 - ENV DATABASE_URL - エンコーディングと照合の指定

  • エンコーディング:utf8mb4
  • 照合:utf8mb4_unicode_ci

私は、ドキュメント内?pool=5例のように、パラメータを照会するためにそれを水増ししようとしたが、動作するようには思えません。

DATABASE_URL=mysql2://user:[email protected]:port/dbname?encoding=utf8mb4&collation=utf8mb4_unicode_ci 

作成されたテーブルは引き続きデフォルトのエンコード/照合を使用しているため、パラメータは機能しないと仮定します。他の方法でこれを設定する方法はありますか?エンコーディングと照合はすべての環境で同じです。

要件dev環境はconfigファイルを持つことができますが、prodは特別なファイルを追加する必要はありません。ENV変数のみを使用する必要があります。これをapplication.rbや他のファイルのようなconfigディレクトリ内のファイルの1つに追加することはできますか?

ありがとうございます。

PS:私はPHP/Pythonから来ているので、私はRailsとRuby(1週間)に慣れています。

答えて

1

ENV変数には設定オプションを指定しないでください。あなたはきれいにそれを維持し、database.ymlのファイルにこれらのオプションを指定する必要があります。

production: 
    encoding: utf8mb4 
    collation: utf8mb4_unicode_ci 
    pool: 5 

それが動作する方法は、レールがDATABASE_URLから何ができるを取り、その後、指定された環境のためにdatabase.ymlの中で設定されたオプションを適用することです。詳細については、https://devcenter.heroku.com/articles/rails-database-connection-behavior#rails-4-1-and-beyond

+0

となりますので、configとENVの値が混ざり合っていますか?私が来年に仕事に戻ったときにそれを試みます(私は次の数日間を意味します)。 :Dありがとう! – Lysender

関連する問題