2017-04-24 10 views
0

Dokku経由でアプリケーションをVPSにデプロイしたいと思います。
状物質(GitHubのでone)で一緒にdokku-postgresdocumentationと相対的、希少なインターネットのドキュメントを置く、私が、任意の他のソースを見つけることができなかったのでurl: <%= ENV['DATABASE_URL'] %>
productionのためにdatabase.ymlを設定する方法

変数URL環境を使用するdatabase.ymlを設定するために必要と思われますどのようにdatabase.ymlを設定する必要があるのでしょうか。Dokkuで作成されたpostgresサービスにRailsがどのように接続するのでしょうか。

たとえば、変数と変数DATABASE_URLをリンクする必要がありますが、これは私のRailsアプリケーションとPostgresサービスとの間の接続を確立するのに十分でしょうか、それでもユーザー名とパスワードを使用する必要がありますか?後者の場合、どのユーザー名とパスワードを使用する予定ですか?

以下は現在私のdatabase.ymlの様子です。私は、アプリケーションを作成したとき、それは(離れて生産のための高いプールサイズから)であるとして

default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 
    username: asarluhi 

development: 
    <<: *default 
    database: fireworks_app_development 

test: 
    <<: *default 
    database: fireworks_app_test 

production: 
    <<: *default 
    database: fireworks_app_production 
    pool: 25 
    username: fireworks_app 
    password: <%= ENV['FIREWORKS_APP_DATABASE_PASSWORD'] %> 

このファイルが作成されました。 productionセクションを編集するにはどうすればよいですか?

dokku、Postgresのマニュアルは、次のいない(と他に何も)デフォルトでリンクされたアプリケーションに設定されると述べている:ロリポップpostgresのサービス例の代わりに

DATABASE_URL=postgres://postgres:[email protected]:5432/lolipop 

、私は一致するfireworks_app_productionを使用しますdatabase.yml
内のデータベースの名前がDATABASE_URL変数にurlを指した後、まだ必要ユーザ名パスワードていますか?私は何かを追加したり削除したりする予定ですか?

+1

'database.yml'に入力する設定は、ENV [" DATABASE_URL "]のオプションとマージされます。 ENVの設定が優先されます。そう、あなたの 'プール'オプションが使用されます。 http://guides.rubyonrails.org/configuring.html#configuring-a-database – max

+0

私が 'url:<%= ENV ['DATABASE_URL']%>'を ' database.yml'?リンクしたドキュメントが記載されているので、これがベストプラクティスです。 – Asarluhi

+1

'database.yml'に' url:<%= ENV ['DATABASE_URL']%> 'を明示的に追加する必要はありませんし、データベースコネクタがデフォルトでENV ['DATABASE_URL']'を使用しているので、その例は、データベースの資格情報をチェックインするのではなく、実稼働環境でENV varを使用するというコンセプト/ベストプラクティスを示す単なる例です。 – max

答えて

2

dokkuでdatabase.ymlを心配する必要はありません。あなたのアプリをサーバーにアップロードして、この例では「花火」を名前に使用しましょう。

初めてアプリをアップロードすると、自動的に作成されるため、作成する必要はありません。

あなたはPostgresのプラグインをインストールして、あなたはあなただけdb:migrateを実行する必要があり、この

を接続することdokkuで、何かを心配する必要はありません

# that will create the container for the database 
$ dokku postgres:create fireworks 
# and then you link both, the app with the database 
$ dokku postgres:link fireworks fireworks 

実行し、すべてがあります準備オーケー!

+0

アプリケーションが既に(すでに作成された)fireworks postgresサービスにリンクされていることを考慮して、 'db:create'を実行する必要があるかどうか不安です。ドキュメントでは、 'db:migrate'だけを実行するべきだと言います。例:http://donpottinger.net/blog/2014/11/17/bye-bye-heroku-hello-dokku.html – Asarluhi

+1

あなたはそうです、db:migrateと – xploshioOn

関連する問題