gpt4 book ai didi

mysql - Rails - 如何从外部数据库访问表

转载 作者:可可西里 更新时间:2023-11-01 07:19:57 27 4
gpt4 key购买 nike

我需要从外部数据库(不是主要数据库)获取一些数据。所以我在 database.yml 中添加了一个连接条目。

external_reporting_table:
adapter: mysql2
encoding: utf8
database: reporting_db
host: localhost
username: root
password: password

我还创建了一个类来解决它,external_reporting_db.rb

class ExternalReportingDB < ActiveRecord::Base
self.abstract_class = true
establish_connection :external_reporting_table
end

我有这个模型,我需要从外部数据库 custom_report.rb 获取数据

class CustomReport < ExternalReportingDB
def self.shop_data_collection_abstract(batch_selections)
p "Here I need to get multiple data from external db's tables."
end
end

我应该怎么做才能从 custom_report.rb 中的外部数据库访问表?

最佳答案

当我执行此操作时,我会根据 ActiveRecord 的预期进行操作,即每个表一个模型类。例如,假设我的外部数据库有一个名为 customers 的表,那么我将定义一个名为“ExternalCustomers”的类,并在该类中设置 establish_connection 和表名。这是一个例子:

class ExternalCustomer < ActiveRecord::Base
establish_connection :external_reporting_table
table_name "customers"
end

然后您可以像使用任何其他 AR 模型一样使用它:

ExternalCustomer.where(id: 123)

如果你不想为每个表添加新模型,你可以通过连接查询外部数据库。示例:

ExternalReportingDB.connection.execute("select * from whatever...")

关于mysql - Rails - 如何从外部数据库访问表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35492362/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com