When upgrading to a new version of Nakama, you need to do three things before you run the newer version:
- Check the Release Notes, in case that version has specific upgrade requirements.
- Migrate your data to the format supported by the new version of Nakama.
- Ensure that the client version you’re running is compatible with the server deployed.
As new versions of Nakama, or CockroachDB, become available you might want to upgrade. Docker makes upgrading easy, as all you need to do is pull down a new version of the container image.
When upgrading to a new version of Nakama, the process in the
docker-compose.yml performs a migration of your data to the new database schema automatically.
You can pull down the most recent Nakama image and allow Docker Compose to perform the data migration.
docker-compose down # top and remove both the Nakama and CockroachDB containers docker pull heroiclabs/nakama # download the latest Nakama image docker-compose up # start the containers (both Nakama and CockroachDB) as fresh installss
And, similarly, here’s how to update the CockroachDB container:
docker pull cockroachdb/cockroach # download the latest CockroachDB image
If you'd like to explicity run a database schema migration, issue the following command:
docker run heroiclabs/nakama migrate up
You can upgrade one node or your whole cluster to the latest version of Nakama by following the instructions below.
For each node in the cluster:
1. Stop Nakama. If you are using
systemd on a Linux setup, the command is:
sudo systemctl stop nakama
2. Back-up CockroachDB
cockroach dump nakama > mydatabackup.sql --insecure
3. Download the latest release and replace the
nakama binary with the newer download.
4. Upgrade the database schema with the following command:
nakama migrate up
To downgrade Nakama you can follow the same procedure, but replace the migration command with the following:
nakama migrate down --limit 1
5. Start Nakama and verify that the upgraded version is running.
sudo systemctl start nakama
Upgrade from Nakama 1¶
Nakama 2 is not backwards compatible with Nakama 1 due to database schema changes and wire protocol changes. This means you'll need to manually upgrade the database before you can run Nakama 2.
Beware. Backup your data now!
The following commands assumes that you have already backed up your data and understand that you'll need to migrate your data back into the database manually yourself after the upgrade procedure is completed.
If you've used Nakama 1 with Docker Compose then you'll need to delete the database volume and start afresh.
This will remove the Docker storage volumes which contain the database files and you can start the servers with Docker and a new database.
docker-compose -f ./docker-compose.yml down -v
Follow this guide to continue.
You'll need to connect to the database directly and issue the following command:
cockroach sql --insecure -e "DROP DATABASE nakama CASCADE;"