Class: OnlineMigrations::BackgroundMigrations::BackfillItemLtreePaths
- Inherits:
-
OnlineMigrations::BackgroundMigration
- Object
- OnlineMigrations::BackgroundMigration
- OnlineMigrations::BackgroundMigrations::BackfillItemLtreePaths
- Defined in:
- lib/online_migrations/background_migrations/backfill_item_ltree_paths.rb
Overview
Background migration to backfill ltree paths on items table
Enqueued by: 20251205000003_enqueue_backfill_item_ltree_paths.rb
This migration populates the following columns:
- primary_pl_path_ids / primary_pl_path_slugs (from primary_product_line)
- all_pl_paths_ids (from all associated product_lines via item_product_lines)
- pc_path_ids / pc_path_slugs (from product_category)
Delegated Instance Attributes collapse
-
#count ⇒ Object
Alias for Item#count.
Instance Method Summary collapse
Instance Method Details
#count ⇒ Object
Alias for Item#count
35 |
# File 'lib/online_migrations/background_migrations/backfill_item_ltree_paths.rb', line 35 delegate :count, to: :Item |
#process_batch(items) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/online_migrations/background_migrations/backfill_item_ltree_paths.rb', line 18 def process_batch(items) items.each do |item| # Build the ltree paths without triggering callbacks item.sync_ltree_paths! # Update columns directly to avoid callbacks item.update_columns( primary_pl_path_ids: item.primary_pl_path_ids, primary_pl_path_slugs: item.primary_pl_path_slugs, all_pl_paths_ids: item.all_pl_paths_ids, pc_path_ids: item.pc_path_ids, pc_path_slugs: item.pc_path_slugs ) end end |
#relation ⇒ Object
14 15 16 |
# File 'lib/online_migrations/background_migrations/backfill_item_ltree_paths.rb', line 14 def relation Item.all end |