Connexion à la base de données sur Heroku
Wow j'ai été coincé sur cette une pour jours. Je vais avoir des problèmes de connexion à la base de données.yml sur Heroku. Je suis sur le Cèdre et le ruby 1.9.2. Mon dev et test dbs sont sqlite3 et la prod db est postgreSQL pour faire face à Cèdre règles.
Voici le code dans mon script ruby:
Rails.env.production? ? (env = "production") : (env = "development")
dbconfig = YAML::load(File.open('config/database.yml'))[env]
ActiveRecord::Base.establish_connection(dbconfig)
Tout va bien en local mais quand je push Heroku, j'obtiens:
ArgumentError: syntax error on line 17, col 0: `adapter = uri.scheme'
from /usr/local/lib/ruby/1.9.1/syck.rb:135:in `load'
Il ressemble à Heroku n'aime pas ma base de données.yml. Voici un aperçu:
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: postgresql
encoding: unicode
database: foo
port: 5432
host: foobar.amazonaws.com
username: foo
password: bar
source d'informationauteur PEF
Vous devez vous connecter pour publier un commentaire.
D'abord, Heroku remplace votre
config/database.yml
avec ses propres Heroku-version spécifique. C'est comment Heroku se connecte automatiquement à votre application de ses propres bases de données postgresql. Dire Heroku au sujet de votre propre posgresql base de données, vous devez mettre en place le bon variables de configuration et vous pourriez aussi bien omettre la production de la base de données à partir de votre laconfig/database.yml
dans votre référentiel, car Heroku va l'ignorer, de toute façon.Deuxième, la
config/database.yml
fichier est un ERB modèle pour un fichier YAML. Vous doit exécutez tout d'abord le contenu du fichier par le biais Évalué Ruby (ERB) avant d'exécuter le la sortie à travers YAML.