You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/backend/upgrading/intro.md
+51-5Lines changed: 51 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,12 +45,18 @@ In addition to the general procedure there are {doc}`version-specific migration
45
45
46
46
These guides contain more specific instructions and valuable information that has been collected from real-life migration cases.
47
47
48
-
## No Large Leaps
48
+
## Upgrade Strategies
49
49
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.
54
60
55
61
Going from Plone 4.0 to Plone 5.1 is fine.
56
62
@@ -59,3 +65,43 @@ If you are at Plone 2.5 and want to upgrade to the latest Plone 5, you should ap
59
65
- First upgrade from Plone 2.5 to the latest Plone 3 version (3.3.6).
60
66
- Then upgrade from Plone 3 to the latest Plone 4 version.
61
67
- 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.
0 commit comments