PhoenixKit.Modules.Publishing.Workers.MigrateLegacyStructureWorker (phoenix_kit v1.7.42)

Copy Markdown View Source

Oban worker for migrating legacy structure posts to versioned structure.

This worker migrates posts from flat file structure (files in post root) to versioned structure (files in v1/ subdirectory). It processes posts in batches and broadcasts progress updates via PubSub.

Usage

# Enqueue a migration job
MigrateLegacyStructureWorker.enqueue("docs")

# Or with options
MigrateLegacyStructureWorker.enqueue("docs", user_id: 123)

Job Arguments

  • group_slug - The publishing group slug
  • user_id - User ID for audit trail (optional)

PubSub Events

The worker broadcasts the following events to posts_topic(group_slug):

  • {:legacy_structure_migration_started, group_slug, total_count} - Migration started
  • {:legacy_structure_migration_progress, group_slug, current, total} - Progress update
  • {:legacy_structure_migration_completed, group_slug, success_count, error_count} - Completed

Summary

Functions

Creates a new migration job.

Enqueues a migration job.

Functions

create_job(group_slug, opts \\ [])

Creates a new migration job.

Options

  • :user_id - User ID for audit trail

Examples

MigrateLegacyStructureWorker.create_job("docs")
MigrateLegacyStructureWorker.create_job("docs", user_id: 123)

enqueue(group_slug, opts \\ [])

Enqueues a migration job.

See create_job/2 for options.

Examples

{:ok, job} = MigrateLegacyStructureWorker.enqueue("docs")