我的应用程序出于多种原因必须与多个数据库一起使用。我致力于建立数据库连接的自定义模型,我需要基于 arg 建立新的数据库连接,. 因此,例如,在使用以下命令建立新连接之前:
ActiveRecord::Base.establish_connection new_config
new_configdatabase.yml 的自定义克隆在哪里
我想在建立任何数据库连接之前检查是否存在新数据库。所以我需要一个函数db_exists? db_name来返回布尔值,基于 db 是否存在。
我的应用程序出于多种原因必须与多个数据库一起使用。我致力于建立数据库连接的自定义模型,我需要基于 arg 建立新的数据库连接,. 因此,例如,在使用以下命令建立新连接之前:
ActiveRecord::Base.establish_connection new_config
new_configdatabase.yml 的自定义克隆在哪里
我想在建立任何数据库连接之前检查是否存在新数据库。所以我需要一个函数db_exists? db_name来返回布尔值,基于 db 是否存在。
我们使用 Rails 应用程序自己管理数据库,所以必须一直做这样的事情。除了当前的 Rails 数据存储之外,想了解数据库是完全合理的。这很像检查不属于当前 Rails 应用程序的文件是否存在。
这是一个在某些情况下可能有用的解决方案(这适用于 MySQL):
def db_exists?(db_name)
ActiveRecord::Base.connection.execute("SHOW DATABASES LIKE '#{db_name}'").size > 0
end
你必须有一些数据库连接,但它当然不一定是你要查询的数据库。(请注意,此实现不受 sql 注入保护......它只需要您传入干净、有效的 db_name。)