Skip to content

Commit 9969fcd

Browse files
erralstevepiercy
andauthored
Document how to pack the ZODB when using containers (#1886)
* Fix broken glossary entry (#1884) * add recipe to pack the ZODB * Update docs/install/containers/recipes/index.md Co-authored-by: Steve Piercy <web@stevepiercy.com> * Apply suggestions from code review Co-authored-by: Steve Piercy <web@stevepiercy.com> --------- Co-authored-by: Steve Piercy <web@stevepiercy.com>
1 parent 1f13a87 commit 9969fcd

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

docs/install/containers/recipes/index.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,43 @@ RUN <<EOT
118118

119119
After making these changes, build the project container as usual.
120120
It will no longer output the access log, but will continue to output the event log.
121+
122+
123+
## Pack the ZODB
124+
125+
A common maintenance task of a Plone instance is to [pack the ZODB](https://zodb.org/en/stable/reference/zodb.html#ZODB.DB.pack).
126+
Packing removes old revisions of objects.
127+
It is similar to [routine vacuuming in PostgreSQL](https://www.postgresql.org/docs/8.3/routine-vacuuming.html).
128+
129+
The official {doc}`/install/containers/images/backend` container and project containers based on them have a `pack` command to pack the ZODB.
130+
The command will work in standalone mode, ZEO mode, and RelStorage mode but only with PostgreSQL.
131+
132+
Invoke the command in a running container by passing in the appropriate command for the mode.
133+
134+
In standalone mode, ZODB is in a mounted volume, so the command would be similar to the following.
135+
136+
```shell
137+
docker run -v /path/to/your/volume:/data plone/plone-backend pack
138+
```
139+
140+
In ZEO mode, run the command next to your ZEO instance.
141+
142+
```shell
143+
docker run -e ZEO_ADDRESS=zeo:8100 --link zeo plone/plone-backend pack
144+
```
145+
146+
In RelStorage mode, pass the connection DSN.
147+
148+
```shell
149+
docker run -e RELSTORAGE_DSN="dbname='plone' user='plone' host='db' password='password' port='5432'" pack
150+
```
151+
152+
In running containers that use Docker Compose, the command is less complicated.
153+
154+
```shell
155+
docker compose run backend pack
156+
```
157+
158+
The above command assumes that the service that runs the Plone instance is named `backend`.
159+
Otherwise replace `backend` with your container's name.
160+

0 commit comments

Comments
 (0)