Je souhaite déployer mon application via le Dokku
sur un VPS.
Mettre ensemble le dokku-postgres
documentation et le parent, la documentation Internet rare en la matière (one à GitHub), il semble nécessaire de configurer database.yml
pour utiliser l'environnement variable URL url: <%= ENV['DATABASE_URL'] %>
Comment configurer database.yml pour la production
Depuis que je ne pouvais pas trouver d'autres sources de informations, je me demande comment database.yml
doit être configuré, et comment Rails se connectera au service postgres créé avec Dokku.
Par exemple, pris pour acquis que liant url
à la variable DATABASE_URL
est nécessaire, ce que cela sera suffisant pour établir une connexion entre mon application Rails et le service ou serait-il encore postgres nécessaire d'utiliser un nom d'utilisateur et un mot de passe? Dans ce dernier cas, quel nom d'utilisateur et quel mot de passe dois-je utiliser?
Voici à quoi ressemble actuellement mon 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'] %>
Ce fichier a été créé comme il est (à l'exception d'une taille de la piscine plus élevée pour la production) quand j'ai créé l'application. Comment suggéreriez-vous d'éditer la section production
?
La documentation Dokku-postgres indique que ce qui suit (et rien d'autre) sera mis sur l'application liée par défaut:
DATABASE_URL=postgres://postgres:[email protected]:5432/lolipop
A la place de l'exemple de service postgres sucettes, je voudrais utiliser fireworks_app_production
pour correspondre le nom de la base de données database.yml
Y nom d'utilisateur etmot de passe encore nécessaire après avoir rappelé url
à la variable DATABASE_URL
? Suis-je censé ajouter ou enlever quoi que ce soit d'autre?
Les paramètres que vous entrez dans 'database.yml' sont fusionnés avec les options de ENV [" DATABASE_URL "]. Les paramètres de ENV ont la priorité. Donc oui votre option 'pool' sera utilisée. http://guides.rubyonrails.org/configuring.html#configuring-a-database – max
Mon option 'pool' serait-elle fusionnée si je décidais d'ajouter' url: <% = ENV ['DATABASE_URL']%> 'dans' database.yml'? Comme la documentation que vous liez les états, ce serait une bonne pratique. – Asarluhi
L'ajout de 'url: <% = ENV ['DATABASE_URL']%>' explicitement dans votre 'database.yml' n'est pas nécessaire ou une bonne pratique puisque le connecteur de base de données utilise' ENV ['DATABASE_URL'] 'de toute façon par défaut.C'est juste un exemple pour montrer le concept/la meilleure pratique que vous devriez utiliser une var ENV dans la production au lieu de vérifier vos informations d'identification de base de données. – max