10th October 2024 — Enhance static site migration to be fully data-driven with migration settings UI #64
Enhance static site migration to be fully data-driven (refs #64) (1e51af9)
What's New
The static site migration system has been completely overhauled with a new admin UI at /admin/migration-settings. The system now supports data-driven configuration, WebSocket live updates, parent page modes with action buttons, specific album targeting, and idempotent re-runs. Content is now stored inline within PageContent rather than via separate ContentText references.
Where to Find It
- Admin → Migration Settings: New migration configuration interface with tabbed settings and live activity monitoring
- Migration Engine: Enhanced parent-page link scraping with directory fallback and per-page feedback
- Content Management: BREAKING CHANGE - PageContent now embeds inline text (contentText) instead of contentTextId for new migrations
Benefits
- Visual Configuration: Configure migrations through UI instead of code
- Live Monitoring: WebSocket keepalive and auto-reconnect provide resilient real-time updates during migration
- Flexible Parent Pages: Choose between migrating parent content as-is or creating action button rows for child pages
- Targeted Migrations: Migrate specific albums and control maximum children per parent page
- Idempotent Operations: Safe to re-run migrations - content upserts by path/name prevent duplicates
- Better Image Handling: Inline images are converted to absolute URLs and merged intelligently into text rows
- Cleaner Content: Shared text exclusions remove navigation elements and excluded images consistently
- Migration History: All migration activity persisted to database with progress/error tracking
- Simplified Schema: Inline content storage (columns.contentText) simplifies data model
- Action Buttons: Parent pages can automatically generate button rows linking to child pages