Me gustaría implementar mi aplicación a través de Dokku en un VPS.
Reuniendo la documentación dokku-postgres y la relativa y escasa documentación de Internet sobre el tema ( una en GitHub), parece necesario configurar database.yml para usar la variable de entorno url: <%= ENV['DATABASE_URL'] %>
Como no pude encontrar ninguna otra fuente de información, me pregunto cómo debe configurarse database.yml y cómo Rails se conectará al servicio postgres creado con Dokku .
Por ejemplo, si se da por sentado que es necesario vincular la url a la variable DATABASE_URL , ¿será esto suficiente para establecer una conexión entre mi aplicación Rails y el servicio de postgres o aún sería necesario usar un nombre de usuario y una contraseña? En este último caso, ¿qué nombre de usuario y contraseña debo usar?
A continuación se muestra cómo se ve actualmente mi database.yml de datos.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'] %> Este archivo se creó tal cual (aparte de un tamaño de grupo más alto para la producción) cuando creé la aplicación. ¿Cómo sugerirías editar la sección de production ?
La documentación de dokku-postgres establece que lo siguiente (y nada más) se establecerá en la aplicación vinculada de forma predeterminada:
DATABASE_URL=postgres://postgres:SOME_PASSWORD@dokku-postgres-lolipop:5432/lolipop En lugar del ejemplo del servicio postgres de lollipop, usaría fireworks_app_production para que coincida con el nombre de la base de datos en database.yml de datos.yml
¿Siguen siendo necesarios el nombre de usuario y la contraseña después de apuntar la url a la variable DATABASE_URL ? ¿Se espera que agregue o elimine algo más?
No necesita preocuparse por la base de datos.yml con dokku, simplemente cargue su aplicación en el servidor, usemos "fuegos artificiales" como nombre, por ejemplo, en esto.
cuando carga la aplicación por primera vez, esta se crea automáticamente, por lo que no necesita crearla.
luego instalas el complemento de postgres y ejecutas
# 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 fireworksno tienes que preocuparte por nada mas, con eso dokku conectare esto
¡entonces solo tiene que ejecutar db:migrate y todo estará listo para funcionar!