Since #16173, `account_summaries` and `follow_recommendations` are not populated at creation time, which causes concurrent refresh to fail. As we currently only use those materialized views right after explicitly refreshing them, this commit changes refreshes to not be performed concurrently. This will fix the issue and ensure the refresh completes faster while using less resources.
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			655 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			655 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| # == Schema Information
 | |
| #
 | |
| # Table name: follow_recommendations
 | |
| #
 | |
| #  account_id :bigint(8)        primary key
 | |
| #  rank       :decimal(, )
 | |
| #  reason     :text             is an Array
 | |
| #
 | |
| 
 | |
| class FollowRecommendation < ApplicationRecord
 | |
|   self.primary_key = :account_id
 | |
| 
 | |
|   belongs_to :account_summary, foreign_key: :account_id
 | |
|   belongs_to :account, foreign_key: :account_id
 | |
| 
 | |
|   scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) }
 | |
| 
 | |
|   def self.refresh
 | |
|     Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)
 | |
|   end
 | |
| 
 | |
|   def readonly?
 | |
|     true
 | |
|   end
 | |
| end
 |