3
我有一個應用程序部署在使用postgresql作爲數據庫的heroku中。我創建將連接到遠程MySQL數據庫像下面這樣的新模式:Heroku:數據庫配置沒有指定適配器
# other_database.rb(apps/models/)
class OtherDatabase < ActiveRecord::Base
self.abstract_class = true
establish_connection "remote_#{Rails.env}"
end
# other_model.rb(apps/models/)
class OtherModel < OtherDatabase
self.table_name = "users"
end
我還編輯database.yml文件,並添加這些項:
remote_development:
adapter: mysql2
encoding: utf8
reconnect: false
database: app_development
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
remote_production:
adapter: mysql2
encoding: utf8
reconnect: true
database: app_production
pool: 40
username: root
password: secretpassword
socket: /var/run/mysqld/mysqld.sock
host: 12.34.56.78
遠程數據庫使用mysql作爲它的數據庫。
它工作正常,在我的本地機器,但是當我把它部署到Heroku的,它創建了一個錯誤頁面,讓我擡頭對Heroku的日誌,我發現這一個:
/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/connection_specification.rb:52:in `resolve_hash_connection': database configuration does not specify adapter (ActiveRecord::AdapterNotSpecified)
from /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/connection_specification.rb:46:in `resolve_string_connection'
我花了幾乎所有的時間尋找答案,但無濟於事。希望任何人都可以幫助解決這個問題。
TIA。
Eralph
感謝您的快速回復。你如何設置用戶名和密碼,以及使用環境變量鏈接的數據庫名稱? – Eralph
heroku配置:設置DB_USERNAME =用戶名DB_PASSWORD =密碼然後通過ENV ['DB_USERNAME']和ENV ['DB_PASSWORD']引用它們 –
我會試試這個功能,並會在出現問題時通知您。謝謝。 – Eralph