Skip to content

Commit ffe5d83

Browse files
committed
document migration strategies and mayor changes in Plone that impact migrations
1 parent 7935e91 commit ffe5d83

File tree

3 files changed

+56
-5
lines changed

3 files changed

+56
-5
lines changed

docs/backend/upgrading/intro.md

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,18 @@ In addition to the general procedure there are {doc}`version-specific migration
4545

4646
These guides contain more specific instructions and valuable information that has been collected from real-life migration cases.
4747

48-
## No Large Leaps
48+
## Upgrade Strategies
4949

50-
```{note}
51-
- It is advisable to not make large leaps in version numbers.
52-
- A single upgrade should not try to bridge multiple major version numbers.
53-
```
50+
### Inplace Migrations
51+
52+
A inplace migration means the content and settings of a Plone installation are being updated while Plone is running.
53+
These upgrades use a builtin tool and basically run upgrade-steps that are collected in [plone.app.upgrade](https://github.com/plone/plone.app.upgrade/).
54+
55+
This approach is recommended for all upgrades of minor version and can work fine for most mayor upgrades.
56+
When dealing with mayor changes in Plone or with very large or complex installations a export-import based migration (see below) is often the better solution.
57+
58+
During in-place migrations it is advisable to **not make large leaps** in version numbers.
59+
A single upgrade should not try to bridge multiple major version numbers.
5460

5561
Going from Plone 4.0 to Plone 5.1 is fine.
5662

@@ -59,3 +65,43 @@ If you are at Plone 2.5 and want to upgrade to the latest Plone 5, you should ap
5965
- First upgrade from Plone 2.5 to the latest Plone 3 version (3.3.6).
6066
- Then upgrade from Plone 3 to the latest Plone 4 version.
6167
- Then upgrade from Plone 4 to the latest Plone 5 version.
68+
69+
70+
### Export-import Migrations
71+
72+
Export all content and settings that you want to keep from an old site and import it to a fresh site.
73+
74+
This approach allows you to migrate from Plone 4 to 6, from Python 2 to 3 and from Archetypes to Dexterity in one migration-step and is recommended for large and complex migrations.
75+
76+
The recommended tool for this is https://github.com/collective/collective.exportimport. An alternative is transmogrifier (see the training {ref}`training:transmogrifier-label`)
77+
78+
## Mayor Changes
79+
80+
The following mayor changes in the history of Plone require special attention when migrating:
81+
82+
### Plone 5.0: Dexterity replaces Archetypes
83+
84+
With Plone 5.0 the default framework for content-types switched from Archetypes to Dexterity.
85+
86+
Until Plone 5.2.x (in Python 2 only!) there is a builtin migration from Archetypes to Dexterity.
87+
See https://pypi.org/project/plone.app.contenttypes/2.2.3/#migration for details on the migration of custom and default content-types to Dexterity.
88+
89+
Using [collective.exportimport](https://pypi.org/project/collective.exportimport/) you can export Archetypes content and import it as Dexterity content.
90+
91+
92+
### Plone 5.2: Support for Python 3
93+
94+
Plone 5.2 added support for Python 3 while Plone 6 dropped support for Python 2.
95+
This means that you can use Plone 5.2 to upgrade to Python 3.
96+
97+
This requires that you run Plone in Python 3 and only use code that supports Python 3. It also requires that you migrate the database in a separate step from Python 2 to 3 while Plone is not running.
98+
99+
See the chapters {ref}`migrating-52-to-python3-label` and {ref}`migrate-zodb-to-python3-label` for detailed info on these steps.
100+
101+
Using [collective.exportimport](https://pypi.org/project/collective.exportimport/) you can export content in Python 2 and import it in Python 3.
102+
103+
### Plone6: Volto as new frontend
104+
105+
Plone 6 comes with a new default frontend called {term}`Volto` which is written in React and expects some subtle but important changes.
106+
107+
See {ref}`backend-migrate-to-volto-label` for these specialized migration-steps.

docs/backend/upgrading/version_specific_migration/upgrade_to_python3.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ myst:
77
"keywords": "Upgrading, Python 3"
88
---
99

10+
11+
(migrating-52-to-python3-label)=
12+
1013
# Migrating Plone 5.2 to Python 3
1114

1215
```{admonition} Description

docs/backend/upgrading/version_specific_migration/upgrade_zodb_to_python3.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ myst:
77
"keywords": "Upgrading, ZODB, Python 3"
88
---
99

10+
(migrate-zodb-to-python3-label)=
11+
1012
# Migrate a ZODB from Python 2.7 to Python 3
1113

1214
```{note}

0 commit comments

Comments
 (0)