# 2.2.0 Upgrade Guide

### Backup Configuration

Copy all of your configuration (settings.yml, permissions.yml, aliases.yml, embeds.yml and errors.json) to a safe place to help you configure the bot later, or in case you wish to downgrade. Do not copy application.yml. Additionally, you should backup the `filter.txt` file in the cogs > admin folder to save your blacklisted words.

### Backup Databases

If you are using SQLite for storage, copy your `database` folder to a safe place to restore after installing the new version.

### Update ZeoBot

After you have backed up your configuration files and databases, you will need to re-install ZeoBot as there are configuration and structure changes. Download the latest release from MC-Market and unzip it to a different folder. Make sure there are no traces of the old version in this folder.

### Migrate Databases

If you are using SQLite, make sure the database type is set to SQLite in the configuration. Create a folder in the ZeoBot folder called `database`. Paste all your database files here.\
If you are using PostgreSQL or MySQL, make sure your database details are filled in the configuration.&#x20;

Now, open the `migration` folder, then open the `2.2.0` folder and run the `migrate_databases.py` file. (`python3 migrate_databases.py` for macOS and Linux or `py -3.9 migrate_databases.py` for Windows).&#x20;

### Configure and Run ZeoBot

After your databases have been migrated, configure ZeoBot's new configuration files, using the old files as a guide. There are changes to configuration in all configuration files so do not use your old configuration files directly. Using a diff tool such as [diffchecker](https://www.diffchecker.com) is recommended to find changes. You can directly paste your `filter.txt` file into the cogs > admin folder however. Finally, run ZeoBot in the same way as before, following the [Dependencies](https://docs.zingyawesome.com/installation/3.-dependencies) guide.&#x20;

{% hint style="info" %}
Make sure you run the migration script from the `2.2.0` folder. Do not use the `2.0.0` scripts.
{% endhint %}

{% hint style="danger" %}
If database migration fails, you will have to delete the databases in the case of SQLite or reset the database in the case of PostgreSQL or MySQL.
{% endhint %}
