ruby-on-rails – Heroku上的資料庫連線
哇我已經被困在這一天了幾天.我無法連線到Heroku上的database.yml.我在雪松和紅寶石1.9.2.我的開發人員和測試dbs是sqlite3,而prod db是postgreSQL來應對Cedar規則.
這是我的紅寶石指令碼中的程式碼:
Rails.env.production? ? (env = "production") : (env = "development") dbconfig = YAML::load(File.open('config/database.yml'))[env] ActiveRecord::Base.establish_connection(dbconfig)
一切在當地都很好,但當我推到Heroku,我得到:
ArgumentError: syntax error on line 17, col 0: `adapter = uri.scheme' from /usr/local/lib/ruby/1.9.1/syck.rb:135:in `load'
看來Heroku不喜歡我的database.yml.這是一個概述:
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
,你也可以從你的儲存庫中的config / database.yml中省略生產資料庫,因為Heroku會忽略它.
其次,config / database.yml檔案是YAML檔案的ERB模板.您必須首先通過評估Ruby(ERB)執行檔案內容,然後通過YAML執行輸出.
http://stackoverflow.com/questions/7351915/database-connection-on-heroku