Class: OnlineMigrations::BackgroundMigrations::BackfillSiteMapRecommendations

Inherits:
OnlineMigrations::BackgroundMigration
  • Object
show all
Defined in:
lib/online_migrations/background_migrations/backfill_site_map_recommendations.rb

Overview

Backfills SiteMapRecommendation records from existing seo_report JSONB data.
Runs Seo::RecommendationExtractorService for each SiteMap that has a report
but no recommendations yet.

Enqueued by: 20260314053655_create_site_map_recommendations.rb

Delegated Instance Attributes collapse

Instance Method Summary collapse

Instance Method Details

#countObject

Alias for Relation#count

Returns:

  • (Object)

    Relation#count

See Also:



27
# File 'lib/online_migrations/background_migrations/backfill_site_map_recommendations.rb', line 27

delegate :count, to: :relation

#process_batch(site_maps) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/online_migrations/background_migrations/backfill_site_map_recommendations.rb', line 19

def process_batch(site_maps)
  site_maps.each do |site_map|
    Seo::RecommendationExtractorService.new(site_map: site_map).process
  rescue StandardError => e
    Rails.logger.warn "[BackfillSiteMapRecommendations] Error for SiteMap #{site_map.id}: #{e.message}"
  end
end

#relationObject



12
13
14
15
16
17
# File 'lib/online_migrations/background_migrations/backfill_site_map_recommendations.rb', line 12

def relation
  SiteMap
    .where.not(seo_report: nil)
    .where.not(seo_report: {})
    .where.not(id: SiteMapRecommendation.select(:site_map_id))
end