forked from fedi/mastodon
f9c2d1b9a1
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
800 B
Ruby
26 lines
800 B
Ruby
# frozen_string_literal: true
|
|
# == Schema Information
|
|
#
|
|
# Table name: account_summaries
|
|
#
|
|
# account_id :bigint(8) primary key
|
|
# language :string
|
|
# sensitive :boolean
|
|
#
|
|
|
|
class AccountSummary < ApplicationRecord
|
|
self.primary_key = :account_id
|
|
|
|
scope :safe, -> { where(sensitive: false) }
|
|
scope :localized, ->(locale) { where(language: locale) }
|
|
scope :filtered, -> { joins(arel_table.join(FollowRecommendationSuppression.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:account_id].eq(FollowRecommendationSuppression.arel_table[:account_id])).join_sources).where(FollowRecommendationSuppression.arel_table[:id].eq(nil)) }
|
|
|
|
def self.refresh
|
|
Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)
|
|
end
|
|
|
|
def readonly?
|
|
true
|
|
end
|
|
end
|