Pregunta

Configuré una conexión remota localmente y necesito llevarla a heroku. Cuando lo empujé a heroku recibí un error que decía:

RemoteDBName no está configurado.

Solo asumo (también busqué y vi) heroku usa su propio archivo config.yml.

¿Fue útil?

Solución

Descubrí esto, para cualquiera que se conecte a una base de datos remota en heroku que pueda ver esto:

Heroku reemplaza su archivo database.yml con el suyo, sobrescribiendo cualquier cosa en la suya.

Para evitar esto:

  • Cree un nuevo archivo en su carpeta de configuración, asígnele el nombre whatever.yml
  • Configura la cadena de conexión en este archivo.
  • Crea un nuevo archivo en tu carpeta de inicializadores, llamé mine load_remote.rb. En este archivo, escriba esta línea de código:

    REMOTE_DB = YAML.load_file (" # {RAILS_ROOT} /config/YOURNEWFILEHERE.yml")

  • Establezca su conexión en cualquiera de los modelos remotos con esta línea de código:

    establo_conexión Remote_DB ['Cualquiera que sea el nombre de su cadena de conexión en el archivo yml aquí']

Otros consejos

Déjame mostrarte cómo se realiza la configuración de la base de datos cuando trabajas con Heroku. Creo que esto puede ser un poco vago en la documentación, algunas personas se confunden al respecto. Vamos a utilizar la consola:

zero:~/Projects/crantastic $ heroku console
Ruby console for crantastic.heroku.com
>> puts File.read(Rails.configuration.database_configuration_file)
---
production:
  encoding: unicode
  adapter: postgresql
  username: something_random
  port: 5432
  host: somewhere.at.heroku
  database: something_random
  password: something_random

=> nil
>>

Heroku en la práctica reemplaza sus aplicaciones database.yml cuando empuja su sitio a sus servidores. Sus datos se almacenarán en uno de sus sofisticados servidores PostgreSQL sin importar lo que use localmente, esto significa que no tiene que pensar en database.yml en absoluto (a excepción de los propósitos de desarrollo, naturalmente). Taps se asegura de que todo sea dn agnóstico. Si desea enviar su último db de desarrollo a Heroku, simplemente ejecute heroku db: push

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top