我有一个运行着 postgres 数据库的 Rails 4.2 应用程序。我需要按需连接其他数据库 (word_press_sites)。
我已经尝试将下面的代码写入 Rails 控制台:
ActiveRecord::Base.establish_connection(
adapter: "mysql2",
host: ENV["HOST"],
username: ENV["USERNAME"],
password: ENV["PASSWORD"],
database: ENV["DB_NAME"]
)
以上代码结果, 没有错误,连接到 word_press database_tables。
1) 如果我试图通过在我的 Rails 应用程序数据库中调用 User.all 来访问该表,我将无法访问,这会引发错误。
最佳答案
打开rails控制台后可以查看
ActiveRecord::Base.connection.current_database
这将提供当前的数据库信息,然后尝试您提供的脚本
ActiveRecord::Base.establish_connection(
adapter: "mysql2",
host: ENV["HOST"],
username: ENV["USERNAME"],
password: ENV["PASSWORD"],
database: ENV["DB_NAME"]
)
现在尝试同样的命令
ActiveRecord::Base.connection.current_database
这会给新连接的 ActiveRecord 连接 这意味着事件记录被转移到新连接的 wordpress 数据库中,因此您无法访问 rails 应用程序数据库中的表
如果你想恢复到你的 Rails 应用程序数据库,你可以这样做
ActiveRecord::Base.remove_connection(ActiveRecord::Base)
如果您需要更多信息,请告诉我
关于database - 为什么在手动建立与 wordpress 数据库的新连接后我无法访问我的 Rails 应用程序数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44735778/