簡體   English   中英

生產中的數據庫連接問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM