Appearance
Upgrading Meilisearch
Meilisearch, the search engine used by Open Archiver, requires a manual data migration process when upgrading to a new version. This is because Meilisearch databases are only compatible with the specific version that created them.
If an Open Archiver upgrade includes a major Meilisearch version change, you will need to migrate your search index by following the process below.
Migration Process Overview
For self-hosted instances using Docker Compose (as recommended), the migration process involves creating a data dump from your current Meilisearch instance, upgrading the Docker image, and then importing that dump into the new version.
Step 1: Create a Dump
Before upgrading, you must create a dump of your existing Meilisearch data. You can do this by sending a POST request to the /dumps
endpoint of the Meilisearch API.
Find your Meilisearch container name:
bashdocker compose ps
Look for the service name that corresponds to Meilisearch, usually
meilisearch
.Execute the dump command: You will need your Meilisearch Admin API key, which can be found in your
.env
file asMEILI_MASTER_KEY
.bashcurl -X POST 'http://localhost:7700/dumps' \ -H "Authorization: Bearer YOUR_MEILI_MASTER_KEY"
This will start the dump creation process. The dump file will be created inside the
meili_data
volume used by the Meilisearch container.Monitor the dump status: The dump creation request returns a
taskUid
. You can use this to check the status of the dump.For more details on dump and import, see the official Meilisearch documentation.
Step 2: Upgrade Your Open Archiver Instance
Once the dump is successfully created, you can proceed with the standard Open Archiver upgrade process.
Pull the latest changes and Docker images:
bashgit pull docker compose pull
Stop the running services:
bashdocker compose down
Step 3: Import the Dump
Now, you need to restart the services while telling Meilisearch to import from your dump file.
Modify
docker-compose.yml
: You need to temporarily add the--import-dump
flag to the Meilisearch service command. Find themeilisearch
service in yourdocker-compose.yml
and modify thecommand
section.You will need the name of your dump file. It will be a
.dump
file located in the directory mapped to/meili_data
inside the container.yamlservices: meilisearch: # ... other service config command: [ '--master-key=${MEILI_MASTER_KEY}', '--env=production', '--import-dump=/meili_data/dumps/YOUR_DUMP_FILE.dump', ]
Restart the services:
bashdocker compose up -d
Meilisearch will now start and import the data from the dump file. This may take some time depending on the size of your index.
Step 4: Clean Up
Once the import is complete and you have verified that your search is working correctly, you should remove the --import-dump
flag from your docker-compose.yml
to prevent it from running on every startup.
- Remove the
--import-dump
line from thecommand
section of themeilisearch
service indocker-compose.yml
. - Restart the services one last time:bash
docker compose up -d
Your Meilisearch instance is now upgraded and running with your migrated data.
For more advanced scenarios or troubleshooting, please refer to the official Meilisearch migration guide.