Skip to content

Commit 7935e91

Browse files
committed
Add old upgrade guide and integrate with new chapters
1 parent abdd195 commit 7935e91

16 files changed

+2953
-28
lines changed

docs/backend/upgrading/index.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,24 @@ myst:
77
"keywords": ""
88
---
99

10-
(backend-upgrading-index-label)=
10+
(plone-upgrade-guide-label)=
11+
12+
# Plone Upgrade Guide
13+
14+
Instructions and tips for upgrading to a newer Plone version.
15+
16+
This guide particularly focuses on
17+
[Unix-like](https://en.wikipedia.org/wiki/Unix-like) environments,
18+
though the stack discussion may be useful to everyone.
1119

12-
# Upgrading the Backend
1320

1421
```{toctree}
15-
:caption: Upgrading the Backend
22+
:caption: Upgrade Guide
1623
:maxdepth: 2
17-
:hidden:
1824
19-
v60
20-
migrate-to-volto
25+
intro
26+
preparations
27+
addon_upgrade
28+
troubleshooting
29+
version_specific_migration/index
2130
```

docs/backend/upgrading/intro.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": ""
5+
"property=og:description": ""
6+
"property=og:title": ""
7+
"keywords": ""
8+
---
9+
10+
(upgrading-plone-label)=
11+
12+
# Upgrading Plone
13+
14+
This document covers the procedures and issues involved in upgrading an existing Plone installation.
15+
16+
This involves both the upgrading of the program set, and migration of the site itself.
17+
18+
Generally, you will often see the word *migration* used as the word we use to describe the process of getting your Plone site
19+
from one version of a given component to a newer version.
20+
21+
For most people, this means upgrading Plone to a newer release, for example from 5.2.x to 6.0.x.
22+
23+
Migration is necessary because the internals of Plone sometimes change to support new functionality.
24+
When that's the case, the content which is stored in your Plone instance may not match what the new version of the software expects.
25+
26+
Plone has a builtin tool that migrates existing content to the new structure.
27+
28+
This guide describes migration in Plone, specifically how you upgrade between different versions.
29+
30+
Before migrating you should read this entire document to understand the potential impact migrating will have on your Plone site.
31+
32+
It is also wise to have read the {doc}`troubleshooting <troubleshooting>` section, in case you may need to employ one of the techniques there.
33+
34+
The guide applies to all contemporary versions of Plone.
35+
36+
For unsupported versions from the year 2009 and before, see older versions of this documentation.
37+
38+
## Version Numbering And Terminology
39+
40+
Plone has a policy that increases the version number to a .0 on every major release.
41+
42+
This means that when we say a *major release*, we are referring to a x.0 release, whereas a minor release has the version numbering 4.3.14 or 5.1.0
43+
44+
In addition to the general procedure there are {doc}`version-specific migration guides </manage/upgrading/version_specific_migration/index>`.
45+
46+
These guides contain more specific instructions and valuable information that has been collected from real-life migration cases.
47+
48+
## No Large Leaps
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+
```
54+
55+
Going from Plone 4.0 to Plone 5.1 is fine.
56+
57+
If you are at Plone 2.5 and want to upgrade to the latest Plone 5, you should approach this in several steps:
58+
59+
- First upgrade from Plone 2.5 to the latest Plone 3 version (3.3.6).
60+
- Then upgrade from Plone 3 to the latest Plone 4 version.
61+
- Then upgrade from Plone 4 to the latest Plone 5 version.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": ""
5+
"property=og:description": ""
6+
"property=og:title": ""
7+
"keywords": ""
8+
---
9+
10+
# Preparations
11+
12+
```{admonition} Description
13+
Things to do before you migrate Plone.
14+
```
15+
16+
## Gather Information
17+
18+
- Read the "What's new in..." for your relevant Plone version, and read the release notes.
19+
20+
- You'll find these in the CMFPlone directory of the distribution of the new version of Plone.
21+
22+
- Make sure to check installed add-ons, if you **do not** need certain add-ons anymore, please deactivate and deinstall.
23+
24+
- Check for dependencies
25+
26+
- Read the release notes for the Plone release you are upgrading to, in particular:
27+
28+
- What version of Python is required?
29+
30+
- What version of Zope is required?
31+
32+
- Do you need any new Python libraries?
33+
34+
- Make sure all the add-on products you are using have updated to support the version of Plone you are upgrading to.
35+
36+
- Start with the third-party products that are in use on your site.
37+
38+
- Verify that they have been updated or verified to work on the new version, and get them upgraded in your existing instance before you start the Plone/Zope/Python upgrade if possible.
39+
40+
- If Zope depends on a newer version of Python, install the new version of Python first.
41+
42+
- If the newer version of Plone depends on a newer version of Zope, you will need to install that before proceeding with the Plone upgrade.
43+
44+
```{note}
45+
Zope has its own migration guidelines, which you will find in the release notes of the version you are migrating to.
46+
47+
If Plone is being upgraded at the same time as a Zope version, Plone will usually handle the Zope upgrade with its own migration script.
48+
```
49+
50+
- Read the following files in the CMFPlone directory of the distribution of the new version of Plone you want to update to:
51+
52+
- README.txt
53+
54+
- INSTALL.txt
55+
56+
- UPGRADE.txt (although this usually contains only the general procedure outlined above)
57+
58+
- These files are important because they may contain important last minute information and might be more specific than the relevant sections of this reference manual.
59+
60+
## Back Up Your Plone Site
61+
62+
```{note}
63+
It's important to back up your Plone site.
64+
```
65+
66+
You will find a {doc}`how-to on backing up your Plone site here </manage/deploying/backup>`.
67+
68+
## Setup A Test Environment To Rehearse The Upgrade
69+
70+
```{note}
71+
Never work directly on your live site until you know that the upgrade was successful.
72+
```
73+
74+
Instead, create a test environment to rehearse the upgrade.
75+
Copy your instance into a new environment and upgrade the copy.
76+
This is a good way of working out your third party products and dependencies in preparation for the final upgrade of the live site!
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": ""
5+
"property=og:description": ""
6+
"property=og:title": ""
7+
"keywords": ""
8+
---
9+
10+
# Troubleshooting
11+
12+
```{admonition} Description
13+
What to do when a problem occurs during a Plone upgrade.
14+
```
15+
16+
When a problem occurs during the migration we recommend that you take the following steps.
17+
18+
## Check the log files
19+
20+
When a site error occurs, or Zope fails to start, there's probably an informative error message in Zope's log files.
21+
Locate [these log files](https://plone.org/documentation/faq/plone-logs) and inspect instance.log.
22+
Ignore irrelevant warnings and search for words such as error, exception and traceback (case-insensitive).
23+
24+
When Zope doesn't start and there's no useful information in the log file, you can start Zope interactively and watch for error messages in the output::
25+
26+
```
27+
bin/instance fg
28+
```
29+
30+
You may be able to find more information on the error messages in:
31+
32+
- the {doc}`Version-specific migration tips </manage/upgrading/version_specific_migration/index>` for your version of Plone
33+
- the {doc}`Error References </appendices/error-reference>`
34+
35+
## Test without customizations
36+
37+
When you have customized page templates or Python scripts, your changes may interfere with changes in the new version of Plone.
38+
It's important to rule out this possibility, since your customizations are unique to your site and no one on the planet will be able to help you solve it.
39+
40+
Temporarily remove your customizations, for example by removing your layers from portal_skins, or by removing files from these layers on the file system.
41+
If the problem disappears, you'll need to double-check your customizations.
42+
It's usually best to copy the original files of the new version of Plone to your skin, and re-customize those.
43+
44+
## Test without products
45+
46+
Bugs or compatibility problems in products that you have installed may cause problems in Plone.
47+
Go to Site Setup > Add/Remove Products and remove (uninstall) all product that are not distributed with Plone.
48+
Remove the uninstalled products from the Products directory of your Zope instance.
49+
50+
If the problem disappears, you'll need to doublecheck the offending product:
51+
52+
- Does it support the new version of Plone, Zope and Python?
53+
Check the product's README.txt or other informational files or pages.
54+
- Does the product require any additional migration procedures?
55+
Check the product's INSTALL.txt, UPGRADE.txt or other informational files or pages.
56+
- Does the product install properly? Re-install it and check the install log.
57+
58+
## Test with a fresh Plone instance
59+
60+
Create a new Plone site with your new version of Plone.
61+
You don't need a new Zope instance, since you can add another Plone site in the root of Zope.
62+
If the problem does not occur in a fresh site, the cause of your problem is most likely a customization, an installed product or content that was not migrated properly.
63+
64+
## Make the problem reproducible
65+
66+
Before you go out and {doc}`ask for help </askforhelp>`, you should be able to describe your problem in such a way that others can reproduce it in their environment.
67+
68+
Reduce the problem to the smallest possible domain.
69+
Eliminate products and customizations that are not part of the problem.
70+
This makes it easier for others to reproduce the problem and it increases your chances of meeting others with the same problem or even a solution.
71+
The more complex your story is, the more likely that it is unique to your situation and in-penetrable to others.
72+
73+
## Ask for help
74+
75+
{doc}`Ask for help </askforhelp>` in the [Plone support channels](https://plone.org/support). Be sure to:
76+
77+
- Provide relevant source code for your customizations that are part of the problem.
78+
- Describe the exact configuration, software versions, migration history, error messages and so on.
79+
80+
## Report a bug
81+
82+
Once you have investigated, analyzed, identified and confirmed the cause of your problem and you are convinced it's a bug (rather than an X-file), go to the appropriate bug tracker and report it:
83+
84+
- Products: the README usually tells how to report bugs
85+
- [Plone Issue Tracker](https://github.com/plone/Products.CMFPlone/issues)
86+
87+
Do not use the bug trackers to ask for help.
88+
First analyze your problem and assert that it's a bug before you report it.
171 KB
Loading
89 KB
Loading
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Version-specific migration procedures and tips
2+
3+
```{admonition} Description
4+
In addition to the general procedure described in the previous sections, this section provides version-specific procedures and tips.
5+
If your migration does not involve a version pair specified here, then you may follow the general procedures alone.
6+
```
7+
8+
```{toctree}
9+
:maxdepth: 2
10+
11+
p4x_to_p5x_upgrade
12+
plone5_minor_upgrade
13+
upgrade_to_51
14+
upgrade_to_52
15+
upgrade_to_python3
16+
upgrade_zodb_to_python3
17+
upgrade_to_60
18+
migrate-to-volto
19+
```

docs/backend/upgrading/migrate-to-volto.md renamed to docs/backend/upgrading/version_specific_migration/migrate-to-volto.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ myst:
99

1010
(backend-migrate-to-volto-label)=
1111

12-
# Migrate to Volto
12+
# Migrating from Plone Classic to Volto
1313

1414
Plone 6 comes with a new default frontend called {term}`Volto`.
1515
Volto is written in React and uses {py:mod}`plone.restapi` to communicate with the backend.

0 commit comments

Comments
 (0)