1. Our Questions
- How long does it take to migrate customized code vs. create it?
- How is data migrated?
2. Upgrade Story
Until Drupal 8, every Drupal release broke backward compatibility with the previous versions API.
Drupal used to try to avoid the “would-a should-a could-a” conundrum.
Each new release of Drupal starts with forking the repo and undoes the patterns from the previous version that have been “worked around” by the contributed module space. As the Core gets older, the Contrib space continues to evolve and iterate. As this evolves, we wind up with the clear and obvious fact that some Contrib modules are actually overriding some core functionality. In some, but not all, of those cases, we end up placing some of Contrib into core. Sometimes this can be adding a whole module.
Drupal 8 has a VERY different philosophy including the fact that DOT releases bring new functionality and an occasional, but well announced, API adjustment. For more on this, read: http://buytaert.net/the-transformation-of-drupal-8-for-continuous-innovation
Plone works hard to migrate between version. It has been possible to migrate a Plone v1 site all the way to v5 with the built-in tools.
Each Release of Plone has documentation for add-on developers and site integrators to follow for making sure their code is ready for the changes in the new version of Plone. Once your code is ready for the new Plone, you can upgrade your entire site by changing the version pins you point to for the latest release.
3. Content Migration
Drupal 8 has a new Migration Feature
https://www.drupal.org/docs/8/upgrade/upgrading-from-drupal-6-or-7-to-drupal-8 explains the process of migrating content AND config into Drupal 8.
The Drupal 8 migration system from Drupal 6, or Drupal 7, that is detailed on this page is, in essence, a migration of both the 'content' and the 'configuration settings' between two independent sites. Implied in this is the fact that you have to create a 'new' Drupal 8 site to accept your old content and configuration settings from D6, or D7.
The migration system is largely inspired by the work of these two modules, which were designed to import things 'into' Drupal 7, as for example from Drupal 5, Drupal 6, or from other Drupal 7 sites:
"Migrate module" ('migrate') project homepage, for Drupal 7 only, but in fact, the module 'Migrate' is now In Drupal 8 core.
"Drupal-to-Drupal data migration" ('migrate_d2d') project homepage, also only for importing into Drupal 7.
Even with a great upgrade path, many organizations may choose to take the opportunity to start afresh.
Plone can leverage Transmogrifier to migrate content. If you want to go from one version of Plone to another, you can dump and reload your content with this tool. If you want to go from another CMS into Plone, you can customize the pipeline to import your previous sites content into your site.