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
- Two exits, your choice — Backdrop keeps the site's structure; Drupal CMS rebuilds around your content. → Leaving Drupal 7: choosing your exit
- 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
- 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
- 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
- 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.
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:
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.
# ~/static/control/platforms.info
DL7 CMS
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.
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
- The whole decision, in depth: Leaving Drupal 7: choosing your exit.
- The Backdrop route: Upgrading from Drupal 7 · Upgrading from Drupal 6 · Your Backdrop site day to day.
- The Drupal CMS route: Migrating a Drupal 7 site to Drupal CMS · Drupal CMS.
- Related sheets: Sites & platforms · Deploying code · Backups & restore.
- The same moves on your own server (for operators): Migrating to Drupal CMS on your own server · Backdrop CMS on your server.