Dear all,
I am trying to deploy on Kubernetes GeoNetwork image 4.0.6 (along with postgres, elasticsearch and kibana).
Anyway the logs of the GeoNetwork container show a lot of errors mainly related to database migration.
Below the first lines of the "kubectl logs.." command on this container:
- - - - - - -
pierpaolo@anonymised.com:~$ kubectl -n geonetwork logs geonetwork-depl-84c5966b55-gfxgp -c geonetwork-core | more
2022-03-06 18:23:44.998:INFO::main: Logging initialized @199ms to org.eclipse.jetty.util.log.StdErrLog
2022-03-06 18:23:45.277:INFO:oejs.Server:main: jetty-9.4.45.v20220203; built: 2022-02-03T09:14:34.105Z; git: 4a0c91c0be53805e3fcffdcdcc9587d5301863db; jvm 1.8.0_322-b06
2022-03-06 18:23:45.321:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///var/lib/jetty/webapps/] at interval 1
2022-03-06 18:23:57.463:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=11344ms
2022-03-06 18:23:57.949:INFO:oejshC.geonetwork:main: 1 Spring WebApplicationInitializers detected on classpath
2022-03-06 18:23:58.432:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2022-03-06 18:23:58.432:INFO:oejs.session:main: No SessionScavenger set, using defaults
2022-03-06 18:23:58.433:INFO:oejs.session:main: node0 Scavenging every 660000ms
2022-03-06 18:24:04,003 INFO [geonetwork.databasemigration] - - Migration ...
2022-03-06 18:24:06,511 INFO [geonetwork.databasemigration] - Webapp version:4.0.6-0 subversion:SNAPSHOT
2022-03-06 18:24:06,512 INFO [geonetwork.databasemigration] - Database version:3.10.6 subversion:0
2022-03-06 18:24:06,521 INFO [geonetwork.databasemigration] - Loading SQL migration step configuration from <?xml version="1.0" encoding="UTF-8"?>
...
2022-03-06 18:24:06,521 WARN [geonetwork.databasemigration] - No migration task found between webapp and database version.
The system may be unstable or may failed to start if you try to run
the current GeoNetwork 4.0.6-0 with an older database (ie. 3.10.6
). Try to run the migration task manually on the current database
before starting the application or start with a new empty database.
Sample SQL scripts for migration could be found in WEB-INF/sql/migrate folder.
2022-03-06 18:24:19,540 INFO [geonetwork.databasemigration] - - Migration ...
2022-03-06 18:24:19,541 INFO [geonetwork.databasemigration] - Webapp version:4.0.6-0 subversion:SNAPSHOT
2022-03-06 18:24:19,542 INFO [geonetwork.databasemigration] - Database version:3.10.6 subversion:0
2022-03-06 18:24:19,542 INFO [geonetwork.databasemigration] - Loading SQL migration step configuration from <?xml version="1.0" encoding="UTF-8"?>
...
2022-03-06 18:24:19,542 INFO [geonetwork.databasemigration] - - running tasks for 3.11.0...
2022-03-06 18:24:19,542 INFO [geonetwork.databasemigration] - - Java migration class:v3110.UpdateMetadataStatus
2022-03-06 18:24:19,676 ERROR [geonetwork.database] - Exception while adding new id column to MetadataStatus. Error is: ERROR: column "id" of relation "metadatastatus" already e
xists
2022-03-06 18:24:19,677 ERROR [geonetwork.database] - Exception while adding new uuid column to MetadataStatus. Error is: ERROR: current transaction is aborted, commands ignored
until end of transaction block
2022-03-06 18:24:34,233 ERROR [geonetwork.database] - Exception while dropping old primary key constraint on table MetadataStatus. Restart application and check logs for databas
e errors. If errors exists then may need to manually drop the primary key for this table.Error is: ERROR: cannot drop constraint metadatastatuspk on table metadatastatus because
other objects depend on it
Detail: constraint metadatastatusrelmdstatusidfk on table metadatastatus depends on index metadatastatuspk
constraint fktih0k768u8kuwxsp8dnm9kru3 on table metadatastatus depends on index metadatastatuspk
Hint: Use DROP ... CASCADE to drop the dependent objects too.
2022-03-06 18:24:34,234 ERROR [geonetwork.database] - Exception while dropping old primary key on table MetadataStatus. Restart application and check logs for database errors.
If errors exists then may need to manually drop the primary key for this table. Error is: ERROR: syntax error at or near "primary"
Position: 33
2022-03-06 18:24:34,235 ERROR [geonetwork.database] - Exception while adding primary key on id column for MetadataStatus. Error is: ERROR: multiple primary keys for table "metad
atastatus" are not allowed
2022-03-06 18:24:34,240 ERROR [geonetwork.database] - Exception while adding foreign key on relatedMetadataStatusId column of MetadataStatus. Error is: ERROR: constraint "metada
tastatusrelmdstatusidfk" for relation "metadatastatus" already exists
2022-03-06 18:24:34,247 INFO [geonetwork.databasemigration] - - SQL migration file:/var/lib/jetty/webapps/geonetwork/WEB-INF/classes/setup/sql/migrate/v3110 prefix:migra
te- ...
2022-03-06 18:24:34,259 INFO [geonetwork.databasemigration] - Errors occurs during SQL migration file: ERROR: column "editable" of relation "settings" does not exist
Position: 22
2022-03-06 18:24:34,260 ERROR [geonetwork.databasemigration] - ERROR: column "editable" of relation "settings" does not exist
Position: 22
org.postgresql.util.PSQLException: ERROR: column "editable" of relation "settings" does not exist
Position: 22
- - - - - - - -
I tried to find infos on how to perform a smooth database migration from GeoNetwork 3.10.6 to 4.0.6, and I found that the sql migration files are on the following GeoNetwork instance path:
- - - - - - - -
jetty@anonymised.com:~$ cd webapps/geonetwork/WEB-INF/classes/setup/sql/migrate/
jetty@anonymised.com:~/webapps/geonetwork/WEB-INF/classes/setup/sql/migrate$ ls
v2100 v243 v261 v263 v265 v300 v302 v304 v306 v3101 v3103 v3110 v3121 v321 v323 v340 v342 v350 v381 v383 v400 v402 v404 v406
v2110 v260 v262 v264 v280 v301 v303 v305 v310 v3102 v3104 v3120 v320 v322 v330 v341 v343 v370 v382 v390 v401 v403 v405
- - - - - - - -
but it is not clear to me which migration files do I have to apply to postgres database and in which order.
Can anyone suggest me the right way to proceed?
With best regards,
Pierpaolo