[英]DB connection problem in production
我在我的應用程序中為一個模型有一個單獨的數據庫,在開發模式下,連接正常工作,但在生產環境中卻無法正常工作。
production:
adapter: mysql
host: myhost
username: root
password:
database: production_db
users_production:
adapter: mysql
host: myhost
username: root
password:
database: other_db
連接到另一個數據庫的模型稱為用戶,但是在other_db
引用的表是smf_users
因此我的User.rb如下所示:
class User < ActiveRecord::Base
establish_connection "users_#{RAILS_ENV}"
set_table_name "smf_users"
end
在生產中,我遇到此錯誤:
Mysql::Error: Table 'production_db. smf_users' doesn't exist:
請注意它是如何嘗試連接到錯誤的數據庫,因此找不到正確的表。 正如我所說,這在開發模式下有效。
有什么建議么?
我發現在使用多個數據庫時,進行關聯時會出現奇數錯誤。 您是否有可能在這里找到了另一個模型,它belongs_to :users
並且您希望它可以正常工作? 否則,您必須查看緩存-Rails很可能無法正確緩存額外數據庫的連接數據。
嘗試:
establish_connection configurations[RAILS_ENV]["users_#{RAILS_ENV}"]
User.connection
Establishment_connection需要連接信息的哈希。 如果從database.yml返回,則應該返回。
您可能要檢查日志中是否出現類似以下的消息:
“未配置users_production數據庫”
如果無法在database.yml中通過字符串找到配置,則該消息將由ActiveRecord :: Base拋出。
您可能會發現這很有用: http : //magicmodels.rubyforge.org/magic_multi_connections/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.