1
使用Scenic gem我已經建立了一個物化視圖測試物化視圖中Rspec的
class MatviewSales < ActiveRecord::Base
self.table_name = 'matview_sales'
self.primary_key = :id
belongs_to :user
belongs_to :account
belongs_to :account_manager, class_name: User, foreign_key: 'manager_id'
def self.refresh
Scenic.database.refresh_materialized_view(table_name, concurrently: true)
end
end
我現在試圖測試在RSpec的這種模式,但無論我做什麼,我不能支持ActiveRecord模型t讓Postgres填充記錄的視圖:
> FactoryGirl.create(:sale_item)
> MatviewSales.refresh
> MatviewSales.all
=> #<ActiveRecord::Relation []>
如何用測試記錄填充物化視圖?
如何爲':sale_item'有關'MatviewSales'?你可以顯示這兩個表的模式和':sale_item'工廠的代碼嗎? – Midwire
同意@Midwire。我們需要查看模式,查詢物化視圖以及調用工廠時創建的行。另外,在刷新時嘗試將'concurrently'設置爲'false'? –