This blog post is based on instructions from various sources and shows step by step how we are moving D7 to Backdrop CMS within Pantheon hosting using WebUI+SFTP option. There are many other ways to do that, but this one works best for our team.
Prepare existing D7 site
- Update modules to latest version (e.g. views, rabbit hole, etc) (estimated time 5 min)
- Disable modules that are not used/upgradable, etc.
- Install https://www.drupal.org/project/backdrop_upgrade_status , click on “configure” to get to url /admin/reports/updates/backdrop-upgrade and run report manually
(estimated time 5 min) - Delete unused content, e.g.
- Unpublished
- Newsletter
Set up new Backdrop site (estimated time 30 min)
- Spin up new site on Pantheon
- Run install
- Prepare code
- Add modules (via UI, drush, git, or sftp) https://backdropcms.org/modules
- Add theme(s) https://backdropcms.org/themes
- Add layout(s) https://backdropcms.org/layouts
- Wipe db and files
Migrate your site (estimated time 30 min)
- Export current D7 database and files via Pantheon dashboard
- Import D7 db via UI on Pantheon into Backdrop site
- Connect to Backdrop code via SFTP and update the following line in file settings.php
// change update setting
$update_free_access to TRUE
- Import D7 files via SFTP
- Run core/update.php as described in https://docs.backdropcms.org/documentation/step-3-upgrade-the-drupal-site
- Conversion from D7 to Backdrop is happening on step 4 (Run updates) - 227 pending updates
- Change settings.php back to $update_free_access to false
Known issues/errors
- Created second role “administrator” and because of that existing admin could not see users - need to add role Admin to get access to admin toolbar
Update #1001 Failed: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3-administer account settings' for key 'PRIMARY': INSERT INTO {role_permission} (`rid`, `permission`, `module`) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2), (:db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5); Array ( [:db_insert_placeholder_0] => 3 [:db_insert_placeholder_1] => administer account settings [:db_insert_placeholder_2] => user [:db_insert_placeholder_3] => 7 [:db_insert_placeholder_4] => administer account settings [:db_insert_placeholder_5] => user ) in user_update_1001() (line 238 of /code/core/modules/user/user.install).
- Enable Project installer to add new modules
Category: