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: README.md
+142-1Lines changed: 142 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -67,7 +67,7 @@ If environment is prepared, then we can start cello service.
67
67
```bash
68
68
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69
69
57df1462c7f1 cello/hyperledger-fabric-agent:local "python manage.py r…" 4 seconds ago Up 2 seconds 0.0.0.0:5001->8080/tcp, :::5001->8080/tcp cello-docker-agent
70
-
04367ab6bd5e postgres:16.8 "docker-entrypoint.s…" 4 seconds ago Up 2 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp cello-postgres
70
+
04367ab6bd5e postgres:16.14"docker-entrypoint.s…" 4 seconds ago Up 2 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp cello-postgres
71
71
29b56a279893 cello/api-engine:latest "/bin/sh -c 'bash /e…" 4 seconds ago Up 2 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp cello-api-engine
72
72
a272a06d8280 cello/dashboard:latest "bash -c 'nginx -g '…" 4 seconds ago Up 2 seconds 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp cello-dashboard
73
73
```
@@ -101,6 +101,147 @@ If environment is prepared, then we can start cello service.
101
101
102
102
* Check [troubleshoot](https://github.com/hyperledger/cello/blob/main/docs/setup/server.md#3-troubleshoot) section if you get any question.
103
103
104
+
### PostgreSQL 12 → 16 Migration
105
+
106
+
#### Important
107
+
108
+
PostgreSQL major-version data directories cannot be directly reused between PG12 and PG16 due to internal storage format changes. Before performing the upgrade:
109
+
* Preserve the existing PG12 data directory or Docker volume so rollback remains possible.
110
+
* Create a separate PG16 volume or storage directory rather than overwriting existing PG12 storage.
111
+
* Perform a full backup of all databases and PostgreSQL globals/roles using `pg_dumpall`.
112
+
* Check PostgreSQL extensions used by the application and verify database driver (`psycopg2-binary`) compatibility.
113
+
* Validate the restored database and application functionality before removing old PG12 data.
114
+
115
+
#### Development environment
116
+
117
+
For setups using `docker-compose.dev.yaml` with the named volume `cello-postgres`:
For deployments using `bootup/docker-compose-files/docker-compose.dev.yml`, `docker-compose.server.dev.yml`, or `docker-compose-dev.yml` with host path `${CELLO_STORAGE_PATH:-/opt/cello}/pgdata`:
2. Verify Django API Engine logs for successful migrations and database connectivity:
228
+
```bash
229
+
docker logs cello-api-engine
230
+
```
231
+
3. Run API integration tests:
232
+
```bash
233
+
make check-api
234
+
```
235
+
236
+
#### Rollback
237
+
238
+
If issues arise during verification:
239
+
1. Stop the PG16 environment (`docker compose down`).
240
+
2. Revert the PostgreSQL image reference to `postgres:12.0`.
241
+
3. Restore the preserved PG12 storage directory (`/opt/cello/pgdata_v12_backup` -> `/opt/cello/pgdata` or `/opt/cello/postgres_v12_backup` -> `/opt/cello/postgres`) or named volume (`cello-postgres-pg12-backup`).
242
+
4. Restart services.
243
+
5. Only remove old PG12 storage after the PG16 environment is fully verified.
244
+
104
245
## Main Features
105
246
106
247
* Manage the lifecycle of blockchains, e.g., create/start/stop/delete/keep health automatically.
0 commit comments