Skip to content

Migrate content

Briefing, not authority. (R) rule at linked source · (O) dated upstream fact · (P) procedure · (C) open work · (G) not established.

WHAT THIS MEANS IN DRUPAL

Moving content from any source into a structured Drupal model with core Migrate + migrate_plus as exported configuration (R) capability map.

OWNER

  • Engine: core Migrate, migrate_plus (ADOPT, stable, covered, O 2026-09-20) matrix; execution migrate_tools.
  • Procedure: migration factory steps 1-14.
  • Redirects: redirect; SEO: metatag + pathauto migration factory §9-10.

PREREQUISITES

  1. (P) Source inventory with observed counts migration factory §1.
  2. (P) Target model exists as config before any migration runs migration factory §3.

DO THIS

  1. (P) Classify every item with the 12-term vocabulary; HUMAN_REVIEW has an owner migration factory §2.
  2. (P) Map fields, taxonomy, references, media; terms and referenced entities first (migration_lookup) migration factory §4-7.
  3. (P) One migration group per source; sample with --limit, then full; rollback must work migration factory §11.
  4. (P) Rewritten copy lands in draft; publish through moderation migration factory §8, §13.
  5. (P) Validate counts, messages, references, redirects, fresh config import migration factory §12.

WATCH FOR

  • Facts buried in prose become fields (R) DRY §12.
  • Media deduped; alt text missing means an editorial task migration factory §7.
  • 200 OK is not the right content; sample real pages (R) standard §17.

DO NOT

OWNERSHIP / CAN-SHOULD-MAY

  • CAN: drush migrate:*.
  • SHOULD: project owns its mapping; this procedure owns the method.
  • MAY: publish only through the site's moderation workflow migration factory §13.

DO NOT REDISCOVER

  • Migrations are config committed with the site or recipe; machine-local migrations are not done migration factory §11.

CONFLICTS

None found in current sources.

GO DEEPER

Anchored sources: frontmatter authority_sources. Expires last_verified + 30d.