Migration, Import & Data Operations
Complete guide to moving content into, out of, and between SveltyCMS instances — from external platform migration to backups, export/import, and environment sync.
On this page
SveltyCMS provides six operational domains for moving content in, out, and between instances. Whether you’re migrating from WordPress, exporting content for a staging environment, or backing up before an upgrade — everything follows a plan-first, preview-before-run safety model.
Plan-first means you always see what will happen before it happens. Every operation — import, export, backup restore, config promotion — generates a preview plan showing affected resources, conflicts, and risk scores. Nothing is applied until you review and confirm.
Quick Guide: What Do You Need?
| You want to… | Use | Where |
|---|---|---|
| Migrate from WordPress, Drupal, or another CMS | Smart Importer | Admin → Config → Migration tile |
| Export content to a file | Content Export | Admin → Data Management → Export |
| Import a content package | Content Import | Admin → Data Management → Import |
| Back up your entire instance | Backup | Admin → Data Management → Backups |
| Restore from a backup | Restore | Admin → Data Management → Backups |
| Move config from dev to production | Config Promotion | Admin → Operations → Config |
| Sync content between environments | Content Sync | Admin → Operations → Sync |
| Transform schema or data across versions | Data Migrations | Admin → Operations → Migrations |
1. Migrating from Another CMS
SveltyCMS includes the Smart AI-Driven Migration Pro plugin — a visual migration wizard that auto-detects your source format and maps fields to SveltyCMS collections.
Supported Source Platforms (40+)
| Format | Auto-Detection | What’s Imported |
|---|---|---|
| WordPress (WXR/XML) | ✅ | Posts, pages, categories, tags, media, ACF fields, CMB2 fields |
| Drupal (JSON export) | ✅ | Nodes, taxonomy, users, files, paragraphs |
| Strapi (JSON export) | ✅ | Collection types, single types, components, media |
| Directus (JSON export) | ✅ | Collections, fields, relations, files |
| SveltyCMS (package) | ✅ | Full content packages with identity matching |
| CSV | ✅ | Flat data with column-to-field mapping |
| JSON | ✅ | Nested or flat JSON with heuristic structure detection |
Migration Workflow
- Enable the plugin — Go to Admin → Config. The Migration tile appears when the Smart Importer plugin is installed.
- Upload your export file — Drag and drop your WordPress WXR, Drupal JSON, or CSV file.
- Auto-detection runs — SveltyCMS identifies the source format, extracts content types, and suggests field mappings.
- Review the mapping — Adjust field mappings in the visual transformation tree. You can remap, skip, or transform any field.
- Preview the import — See exactly which entries will be created, updated, or skipped before running.
- Run the import — Content streams in via SSE with real-time progress. Failed rows go to a dead-letter queue for manual review.
The Smart Importer is a marketplace plugin. See the plugin documentation for installation and platform-specific guides (WordPress, Drupal).
2. Exporting & Importing Content
The Content Transfer system exports and imports editorial content as portable .svelty-package files with NDJSON streaming.
Export Content
- Go to Admin → Data Management → Export.
- Select the collections to export (or export everything).
- Choose format: JSON (small datasets) or Package (large datasets with media).
- Review the export plan — shows entry counts per collection.
- Download the
.svelty-packagefile.
Import Content
- Go to Admin → Data Management → Import.
- Upload a
.svelty-packagefile. - Review the import plan — shows creates, updates, skips, and conflicts.
- Choose a duplicate strategy:
- Skip — Don’t import entries that already exist
- Update — Overwrite existing entries with imported data
- Create copy — Import as new entries with deduplicated slugs
- Fail — Stop if any duplicate is found
- Apply the import. Media references and relations are automatically remapped.
API reference: Content Export & Import — full endpoint documentation with NDJSON streaming, identity matching, and duplicate resolution.
3. Backup & Restore
The Backup system creates full-instance snapshots with AES-256-GCM encryption and SHA-256 integrity verification.
Create a Backup
- Go to Admin → Data Management → Backups.
- Click Create Backup.
- Optionally set an encryption password (AES-256-GCM) for sensitive data.
- The backup captures: collections, entries, media, settings, roles, permissions, themes, widgets, and automations.
- Backups are stored as
.svelty-backupdirectories with a manifest and checksums.
Restore from Backup
- Go to Admin → Data Management → Backups.
- Select a backup from the list.
- Click Restore Plan — previews what will be restored, what’s missing, and any conflicts.
- Review the plan. The system enters maintenance mode during restore to prevent data corruption.
- Confirm and execute the restore.
Restore replaces the current instance state. Always create a fresh backup before restoring. Restore requires admin permission and a maintenance lock.
API reference: Backup & Restore — full endpoint documentation with encryption, validation, and tenant isolation.
4. Configuration Promotion
Move CMS configuration (collections, roles, permissions, settings, widgets, themes, webhooks, automations) between environments — typically dev → staging → production.
Workflow
- Go to Admin → Operations → Config.
- Export the source environment’s configuration.
- Check drift — the system compares checksums to detect what’s different between environments.
- Review the plan — see which resources will be created, updated, or deleted.
- Apply the plan. All changes are audit-logged with deterministic checksums.
Configuration promotion moves structure (schemas, settings, roles), not content. Use Content Transfer for editorial content.
API reference: Configuration Promotion — full endpoint documentation with resource types, drift detection, and audit logging.
5. Content Sync (Cross-Environment)
Synchronize editorial content between environments via configurable channels — e.g., pull production content to staging for testing, or push curated content to production.
Setup
- Go to Admin → Operations → Sync.
- Create a channel: define source instance URL, target instance URL, and which collections to sync.
- Choose direction: push (send to target) or pull (fetch from source).
Safety Features
- Disabled by default — Content sync must be explicitly enabled per channel.
- Plan-first — Always preview what will be synced before executing.
- PII anonymization — When pulling from production to dev, personally identifiable information is automatically anonymized.
- Conflict review — Sync stops and shows conflicts before any data is written.
API reference: Content Sync — full endpoint documentation with channel management, PII anonymization, and conflict resolution.
6. Data Migrations (Schema & Content)
Apply versioned, idempotent transformations to your schema and content — useful when upgrading SveltyCMS versions or evolving your data model.
Workflow
- Go to Admin → Operations → Migrations.
- View migration history — all applied and pending migrations with their
planHash. - Plan a migration — the system risk-scores it as safe, warning, or destructive.
- Apply — each migration runs exactly once (idempotent via
planHashdeduplication). - Verify — confirm the migration produced the expected result.
Safety Features
- Cross-adapter locking — Prevents concurrent migration runs across all database adapters.
- Risk scoring — Destructive migrations (column drops, data deletion) are flagged.
- Checksummed ledger — Every applied migration is recorded with its
planHashfor audit.
API reference: Data Migrations — full endpoint documentation with risk scoring, locking, and verification.
Design Principles
All six data operation domains follow the same safety rules:
- Plan-first — Nothing is applied without a preview.
- Identity by ID, not name — Resources are matched by
_idor deterministic checksums, never by display labels or filenames. - No content in config — Configuration promotion moves structure. Content transfer moves editorial data. They never mix.
- Default-safe merge — Import and sync default to non-destructive strategies (skip, not overwrite).
- Secrets excluded — Users, sessions, tokens, secrets, audit logs, and job state are never included in exports or sync by default.
- Database-agnostic — No operation depends on a specific adapter’s internal table names or query syntax.
Related
- Smart Importer Plugin — Platform-specific migration guides
- Data Operations Architecture — Full technical architecture
- API Reference — Complete endpoint documentation for all six domains
- Data Operations Status — Implementation status with service line counts and test coverage