Migration and Backups

This page discusses common migration problems for server 2.2.x through 2.4.x and how to restore from backups.

Migration Instructions

There are a lot of version numbers, so verify the version due to confusion with all of the 2's and 3's in version numbers.

From version 2.2.x

If you are running version 2.2.23 or lower and want to upgrade, you may have some additional steps because 2.3.x includes a database migration.

First, if you are not running 2.2.23, you should first upgrade to this version to ensure everything is working correctly with your library before migrating. Once you have verified you are on 2.2.23, there are several different things which may have happened (especially if you had previously tried to upgrade).

The 2.3.x and 2.4.x versions include a database migration. The following graphic shows the steps the server does for the database migration (all within the /config directory). You do not do any of these steps. Migration steps

If you have previously tried to upgrade or run into a migration issue, look in your /config directory and check if the SQLite database exists. If it does, that is why your server is still not starting/migrating your data. You can either rename this database file or delete it. If you have oldDb.zip, you should also rename that (but don't delete it until you have verified the migration went well in case there's data there you don't have). Once you have removed the SQLite database file, you can upgrade to 2.3.3, 2.4.1, or latest to get the last official release. DO NOT upgrade to 2.3.0, 2.3.1, or 2.3.2 as migration issues were fixed in 2.3.3. You can go directly to 2.4.1 and do not need to first migrate to 2.3.3. Failed migration leftovers

If your server is failing to start after the migration, ensure your /config directory is on the same machine that is running the ABS server. The new SQLite database needs to be on the same machine and cannot be stored on a remote location (such as if you're running the ABS server on your desktop but all of the data for the server is stored on a NAS). If you are doing this, you will need to make a local directory and move your /config there. The /metadata and all media files can remain on another machine.

From version 2.3.3

If you are on version 2.3.3, you should upgrade to 2.4.1, skipping 2.3.4 and 2.3.5. There were some issues with 2.3.4 and 2.3.5 which were immidately fixed in 2.4.1, but due to version numbering these releases still exist. Some servers have updated automatically due to Watchtower or other tools automatically updating the Docker image as soon as they were released, so these servers should be updated to 2.4.1 since we already know those versions don't work. Your data is not affected if you updated to 2.3.4 or 2.3.5, just your server may not start until you upgrade.

Restoring from backup

This section includes information on restoring from a backup. Backups from 2.2.x are NOT supported on 2.3.x and above. If you would like to use a backup from 2.2.x on a newer version, you can either roll back to 2.2.23 and restore from a backup and let the server perform the migration again (see above), or just restore the 2.2.x backup manually in the filesystem as explained below, and then perform the migration as above.

Before restoring from a backup using the filesystem, make sure your ABS server is not running.

Backup Interface

Restoring 2.2.x

To restore a backup in 2.2.x, you can either use the web GUI in the server settings or manually restore using the filesystem.

These backups are just a zip file of the /config, /metadata/authors and /metadata/items. If you're on Windows, you can just rename the backup file to end in .zip instead of .audiobookshelf, then extract the backup. You will then replace the corresponding directories on your server with these extracted files. Note that the metadata directories from the backup are replacing the /metadata/authors and /metadata/items directories, NOT creating a new /metadata-items directory on the server.

Restoring 2.3.x and 2.4.x

If you are on a version with the SQLite database, you can follow the same directions as for 2.2.x, except you will only have the metadata-items directory to replace, and move the absdatabase.sqlite to the /config folder if restoring using the file system.