我有一个在两个不同国家/地区运行的应用程序。让我们说美国和巴西。 我有一个用户模型连接到美国或巴西,取决于通过调用传递的参数:
User.establish_connection("Brazil_DB")
User.establish_connection("US_DB")
我面临的问题是,如果美国用户来自巴西用户ActiveRecord会话中途丢弃我的巴西连接并连接到美国数据库。
有没有办法在ActiveRecord中管理这种情况?
答案 0 :(得分:1)
您确实应该在相关表格上有一个带有国籍标志的数据库,或者在不同的数据中心部署两个不同的应用程序。这种事情将会是一件非常麻烦的事。
ActiveRecord可以处理在不同数据库中使用不同的表,但是它无法理解如何同时处理多个表中的一个表。您需要一个扩展来管理它。
当您执行以下操作时,问题会变得严重:
Model.find(params[:id])
您应该使用哪种连接?除非你有其他背景,否则答案是“我不知道。”
听起来您应该使用不同的database.yml
文件部署应用程序的两个实例。