Class: OnlineMigrations::DataMigrations::BackfillItemLtreePaths
- Inherits:
-
OnlineMigrations::DataMigration
- Object
- OnlineMigrations::DataMigration
- OnlineMigrations::DataMigrations::BackfillItemLtreePaths
- Defined in:
- lib/online_migrations/data_migrations/backfill_item_ltree_paths.rb
Overview
Backfill ltree paths on items table.
Enqueued by: 20251205000003_enqueue_backfill_item_ltree_paths.rb
Populates:
- 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)
Constant Summary collapse
- BATCH_SIZE =
Batch size.
1_000
Delegated Instance Attributes collapse
-
#count ⇒ Object
Alias for Item#count.
Instance Method Summary collapse
Instance Method Details
#collection ⇒ Object
16 17 18 |
# File 'lib/online_migrations/data_migrations/backfill_item_ltree_paths.rb', line 16 def collection Item.in_batches(of: BATCH_SIZE) end |
#count ⇒ Object
Alias for Item#count
36 |
# File 'lib/online_migrations/data_migrations/backfill_item_ltree_paths.rb', line 36 delegate :count, to: :Item |
#process(items) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/online_migrations/data_migrations/backfill_item_ltree_paths.rb', line 20 def process(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 |