Domanda

Ho installato una connessione remota localmente e devo inviarla a heroku. Quando l'ho spinto su Heroku ho ricevuto un errore che diceva:

RemoteDBName non è configurato.

Suppongo che heroku (anche cercato e visto) usi il proprio file config.yml.

È stato utile?

Soluzione

Capito questo, per chiunque si connette a un database remoto su heroku che potrebbe vedere questo:

Heroku sostituisce il tuo file database.yml con il proprio, sovrascrivendo qualsiasi cosa nel tuo.

Per aggirare questo:

  • Crea un nuovo file nella tua cartella di configurazione, chiamalo qualunque.yml
  • Imposta la stringa di connessione in questo file.
  • Crea un nuovo file nella cartella degli inizializzatori, ho chiamato mio load_remote.rb. In questo file scrivi questa riga di codice:

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

  • Stabilisci la tua connessione in uno dei modelli remoti con questa riga di codice:

    Esta_connection Remote_DB ['Qualunque cosa tu abbia chiamato la tua stringa di connessione nel file yml qui']

Altri suggerimenti

Lascia che ti mostri come viene eseguita la configurazione del database quando lavori con Heroku. Penso che questo potrebbe essere un po 'vago nella documentazione, alcune persone si confondono. Consente di utilizzare la console:

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 in pratica sostituisce le tue app database.yml quando invii il tuo sito ai loro server. I tuoi dati verranno archiviati in uno dei loro fantasiosi server PostgreSQL, indipendentemente da ciò che usi localmente, ciò significa che non devi assolutamente pensare a database.yml (tranne che per gli scopi di sviluppo, naturalmente). Taps si assicura che tutto sia dn agnostico. Se vuoi trasferire il tuo ultimo db di sviluppo su Heroku, esegui semplicemente heroku db: push

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top