为什么我手动建立与wordpress db的新连接后无法访问我的rails应用程序数据库?

ana*_*raj 6 database postgresql wordpress

我有一个运行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"]
)
Run Code Online (Sandbox Code Playgroud)

上面的代码结果,没有错误,连接到word_press database_tables.

1)如果我试图通过在我的rails应用程序中调用User.all来访问该表,则我无法访问哪个引发了错误.

小智 7

打开rails控制台后,您可以检查

ActiveRecord::Base.connection.current_database
Run Code Online (Sandbox Code Playgroud)

这将提供当前的db信息,然后尝试您给出的脚本

ActiveRecord::Base.establish_connection(
    adapter:  "mysql2",
    host:     ENV["HOST"],
    username: ENV["USERNAME"],
    password: ENV["PASSWORD"],
    database: ENV["DB_NAME"]
)
Run Code Online (Sandbox Code Playgroud)

现在尝试相同的命令

ActiveRecord::Base.connection.current_database
Run Code Online (Sandbox Code Playgroud)

这将为新连接的A​​ctiveRecord连接提供意味着Active记录被转移到新连接的wordpress数据库中,这样您就无法访问rails应用程序数据库中的表

如果你想恢复到rails app db,你可以这样做

ActiveRecord::Base.remove_connection( ActiveRecord::Base)

如果您需要更多信息,请与我们联系