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

标签 database wordpress postgresql

我有一个运行着 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/

相关文章:

php - MySQL/PHP 更新查询未执行

mysql - 如何对行值求和并将结果保存在新的总计列中?

php - 插件内的 Wordpress 简码

jquery - Wordpress JQuery 不工作

html - Visual Composer 文本对齐

postgresql 合并

ruby-on-rails - ruby rails : Creating a link based on new database entry

sql - 如何在postgres中获取具有最大时间戳的行?

postgresql - 哪个 PostGIS SRID 对于空间索引最有效?

Mysql列作为sql server中的vColumn语法