Upgrading from Drupal 6
Backdrop upgrades from Drupal 7 only — that is Backdrop's own rule, not a hosting limitation. So a Drupal 6 site reaches Backdrop in two steps, and both are control-panel tasks built around the same promise as everything else on this page's topic: your existing site is never touched.
- Upgrade to Drupal 7 — offered on your Drupal 6 site's page. It converts a copy of your site at a new domain into a real, working Drupal 7 site.
- Upgrade to Backdrop — the standard task, run on that Drupal 7 copy. It works exactly as described in Upgrading from Drupal 7.
Your Drupal 6 original keeps serving visitors through both steps. The in-between Drupal 7 site is not a temporary artifact: it appears in your panel like any other site, you can browse it, compare it against the original for as long as you like, and keep it as a fallback even after you move on to Backdrop.
Both tasks are administrative: if your panel login doesn't show them, ask your host to run them for you — the inputs are just a new domain name for each step.
Your content actually moves — including custom fields
The risky part of any Drupal 6 upgrade was never the pages and users — it is the custom fields (what Drupal 6 called CCK). Their data does not convert by itself, and a naive upgrade finishes "successfully" with that content silently missing.
Step 1 treats the field data as part of the job, not an afterthought:
- It converts the fields along with the site, using a pinned kit of Drupal 7 module ports your host stages on the server — only the modules your site actually uses are enabled on the copy, plus the migration engine and core file and image support.
- The field-data migration is a hard gate. If any field cannot be migrated — say a field type with no Drupal 7 counterpart in the kit — the task stops rather than deliver a site with content quietly missing; the unfinished copy is simply deleted before retrying. Your original is untouched; nothing pretends to have succeeded.
- Modules with no Drupal 7 mapping are switched off on the copy with their database tables kept, and the task log lists every one of them during validation, before anything is created.
Step 1 also handles your site's install profile. Nearly every
Drupal 6 site runs the stock default profile, which the Drupal 7
upgrade renames to standard — the task records that for you. A custom
profile is the exception: one of the same name must already exist on the
Drupal 7 platform and be named when you start step 1, or the task
refuses during validation, before anything is created.
What to check on the Drupal 7 copy
Before running step 2, walk the copy the same way you would after the Drupal 7 upgrade: real pages with images and custom fields, forms, menus, listings. The conversion carries your posts, comments, users, tags, files, URL paths and custom field content.
The copy starts with cron and HTTPS certificates switched off on purpose — it never emails your users or runs background jobs while you are still comparing. There is no rush: the Drupal 6 site serves at the old domain, the Drupal 7 copy at the new one, and step 2 produces a third, Backdrop copy in the same safe shape.
One more thing worth doing between the steps: Drupal 6 stored text in MySQL's original 3-byte utf8, so the Drupal 7 copy carries that encoding too. Run Convert to utf8mb4 on the Drupal 7 copy before step 2 — it backs the copy up, converts it in one task, and step 2 then produces a Backdrop site free of the mixed 3-byte/4-byte state that causes illegal mix of collations errors.
Two ground rules
- Each step needs its own new domain name. The chain never reuses or repoints a domain by itself. The cutover is a deliberate step you take when satisfied: the Cutover task on the finished Backdrop site's page (when the site it replaces lives on the same instance), or a DNS change pointing your real domain at it.
- If a step fails, nothing is lost. A validation refusal creates nothing at all; a later failure leaves a disposable copy that gets deleted and re-run. The site the step started from is never in the write path.