Skip to content

Powered by Grav

Leaving Drupal 7 — Cheat Sheet

Leaving Drupal 7 — Cheat Sheet

Your Drupal 7 site keeps serving while you build its successor right next to it, on the same account. Two exits are built in and neither is picked for you. This page is the quick primer: which exit fits, the ground rules, each route in brief, rehearsing on copies, and the cutover. Everything here links to the full story.

The exits in 30 seconds

  1. Two exits, your choice — Backdrop keeps the site's structure; Drupal CMS rebuilds around your content. → Leaving Drupal 7: choosing your exit
  2. The live site keeps serving — both routes build the new site next to it at a test name, and the conversion itself never writes to the original. → What stops existing here
  3. Backdrop: one panel task converts a copy — the whole database travels, saved views included, and custom code is ported rather than rewritten. → Upgrading from Drupal 7
  4. Drupal CMS: a fresh site, Drupal's own Migrate API — content, files, taxonomy and users cross (users keep their passwords); the front end is new work. → Migrating to Drupal CMS
  5. The cutover is a rename — same domain, and redirects shrink to the few paths that genuinely changed. → What stops existing here

Pick your exit

Choose Backdrop when continuity is the point: the database travels whole — posts, users, files, URL paths, custom fields, menus, saved views — settings become Backdrop configuration, and a theme that leaned on Drupal 7's page template needs a port, not a rewrite. Choose Drupal CMS when a redesign is due anyway: the theme, custom modules and views don't travel, so plan the theming as its own project.

Can't tell? Rehearse both: each runs on disposable copies beside the live site.

→ Which exit is yours

Before either: the ground rules

  • A current Drupal 7 core, database updates run — Upgrade to Backdrop checks the core's database schema and refuses to start, before creating anything, when it is behind (any core from 7.28 on clears it); update core first.
  • Convert to utf8mb4 a Drupal 7 site imported from an older server, or the copy can hit "illegal mix of collations" errors; the task reports "nothing to convert" when the database is already fine.
  • Drupal 6 (Pressflow 6 included) takes two steps — the Upgrade to Drupal 7 task first, then the Backdrop upgrade on that copy.

→ Three ground rules · Converting utf8 databases · Upgrading from Drupal 6

The Backdrop route: one task, a copy

Run Upgrade to Backdrop on the Drupal 7 site's page, with a new domain for the copy — a dev. first label such as dev.example.com turns self-identifying crawlers away and can still get a real certificate — and a Backdrop platform. Before anything is created, the task log prints a per-module report: now in Backdrop core, available as a port, or no Backdrop version yet. If your panel doesn't show the task, your host runs it.

The copy starts with cron and HTTPS off, so it runs no scheduled jobs or scheduled mail while you compare (actions people take on it can still send mail).

A port gap is a short routine on the copy, from the site's directory — delete the carried Drupal 7 module, then:

BASH
bee download webform
bee enable webform
bee updb -y

(Webform itself already ships with current Backdrop platforms, so for it skip the download; the download step is for ports the bundle doesn't carry.)

→ Upgrading from Drupal 7 · Adding modules

The Drupal CMS route: a fresh site, Drupal's Migrate API

First get the platform: add the CMS keyword to ~/static/control/platforms.info and drop the trigger. The file replaces your platform list rather than adding to it, so list everything you still want built (DL7 for fresh Drupal 7 builds) or write ALL — platforms you already have stay either way; and Drupal CMS is Drupal 11, which needs a Percona 8.4 engine — ask your host if it's missing.

TXT
# ~/static/control/platforms.info
DL7 CMS
BASH
touch ~/static/control/run-upgrade.pid

Then install a site on it with a dev. name, enable Migrate, Migrate Drupal and Migrate Drupal UI, set the source's files path, and run /upgrade, which pulls the content across. The platforms BOA provides, Drupal CMS included, are for demonstration and compatibility testing: rehearse there, and take the site you go live with onto a build of your own in ~/static.

→ Migrating a Drupal 7 site to Drupal CMS · not for production · Deploying code cheat sheet

Rehearse on disposable copies

On either route a failed attempt costs one Delete task, never a restore, and every rehearsal is as clean as the first. Walk the copy, fix what the walk showed, delete it and run again; hand the copy to your editors for real tasks (anything they change there is thrown away). When a copy has proven itself, do one last fresh run at a quiet hour with editing paused, and note the paths that genuinely changed — they're your short redirect list.

→ The rehearsal loop

Cut over by rename

  • Backdrop, old site on the same account — switch cron on for the copy, then run Cutover on the copy's page: it backs up and retires the old site (the backup stays restorable) and renames the copy to your domain.
  • Drupal CMS — two Migrate Site renames, back to back: the Drupal 7 site to a name like old.example.com (it keeps serving as your fallback), then the new site, already moved onto your own Drupal CMS build in ~/static, to the production domain; then switch scheduled cron on for the new site and off for the retired Drupal 7 one.

Either way, switch HTTPS back on afterwards — a rename turns it off — and re-add any extra domain aliases.

→ Cutover day as a list · HTTPS for your sites

The tasks and files most people touch

Task or file What it does When to reach for it
Upgrade to Backdrop Converts a copy of the Drupal 7 site at a new name, after printing the module report Every Backdrop rehearsal, and the final run
Convert to utf8mb4 Moves old 3-byte utf8 tables to utf8mb4 after a fresh backup A Drupal 7 site imported from an older server
Cutover Backs up and retires the site holding your domain, then renames the Backdrop copy to it Backdrop cutover day
platforms.info + run-upgrade.pid Brings the Drupal CMS platform (CMS) onto your account; the list replaces the default Drupal CMS route, first step

Two more tasks sit on the route pages: Upgrade to Drupal 7 (Drupal 6's first step) and Migration source (the Drupal CMS command-line lane).

If something's weird

  • Upgrade to Backdrop refuses to start → the Drupal 7 core or its database updates are behind; run your normal core update and its database updates, then run the task again. Three ground rules.
  • The Backdrop copy throws "illegal mix of collations" → the source still stores old 3-byte utf8; delete the copy, run Convert to utf8mb4 on the Drupal 7 site, then upgrade again. Converting utf8 databases.
  • The Drupal CMS copy has the content but no images → the source's files path step was skipped; set it on the Drupal 7 site, delete the target and do a fresh run. Migrating to Drupal CMS.

Going deeper

© 2026 BOA Documentation. All rights reserved.