【发布时间】:2019-11-08 16:58:30
【问题描述】:
我需要将我的 Ruby on Rails 应用程序中的 ActiveRecord 模型加入到另一个没有模型的不同模式中的表中。我已经搜索了答案,并找到了其中的一部分,但在一个地方没有找到完整的解决方案,因此提出了这个问题。
我有车辆模型,有数百万行。
我在同一个数据库的另一个模式 (temp_cars) 中有一个表 (reload_cars),有几百万条记录。这是一个 ad hoc 表,用于一次 ad hoc 数据更新,并且永远不会再次使用。没有与该表关联的模型。
我一开始很懒,在一个查询中将所有 reload_cars 记录选择到一个数组 (reload_vins) 中,然后在第二个查询中执行如下操作:
`Vehicle.where(vin_status: :invalid).where('vin in (?)', reload_vins)`.
这与实际查询相比有所简化,但演示了我需要的连接。在其他查询中,我需要这些表之间的全套内部和外部联接。我还需要在不同的步骤中将各种选择标准放在模型表和/或非模型表上。
这种直截了当的方法在开发中运行良好,但无法扩展到生产数据库。我认为这需要几分钟,这对于一次性操作来说已经足够快了。但是,它超时了,尤其是在遍历记录集时。小的调整没有帮助。
所以,我需要做一个合法的加入。
【问题讨论】:
标签: ruby-on-rails join activerecord schema