Skip to content

Migrate from NOMAD 0.8.x to 1.xΒΆ

Between versions 0.10.x and 1.x we needed to change how archive and metadata data is stored internally in files and databases. This means you cannot simply start a new version of NOMAD on top of the old data. But there is a strategy to adapt the data. This should work for data based on NOMAD >0.8.0 and <= 0.10.x.

The overall strategy is to create a new mongo database, copy all information, and then reprocess all data for the new version.

First, shutdown the Oasis and remove all old containers.

docker compose stop
docker compose rm -f

Update your config files (docker-compose.yaml, nomad.yaml, nginx.conf) according to the latest documentation (see above). Make sure to use index and database names that are different. The default values contain a version number in those names, if you don't overwrite those defaults, you should be safe.

Make sure you get the latest images and start the Oasis with the new version of NOMAD:

docker compose pull
docker compose up -d

If you go to the GUI of your Oasis, it should now show the new version and appear empty, because we are using a different database and search index now.

To migrate the data, we created a command that you can run within your Oasis' NOMAD application container. This command takes the old database name as an argument, it will copy all data from the old mongodb to the current one. The default v8.x database name was nomad_fairdi, but you might have changed this to nomad_v0_8 as recommended by our old Oasis documentation.

docker exec -ti nomad_oasis_app bash -c 'nomad admin upgrade migrate-mongo --src-db-name nomad_v0_8'
docker exec -ti nomad_oasis_app bash -c 'nomad admin uploads reprocess'

Now all your data should appear in your Oasis again. If you like, you can remove the old index and database:

docker exec nomad_oasis_elastic bash -c 'curl -X DELETE http://elastic:9200/nomad_fairdi'
docker exec nomad_oasis_mongo bash -c 'mongo nomad_fairdi --eval "printjson(db.dropDatabase())"'