# 2.0.0 Upgrade Guide

### Backup Configuration

Copy your settings.yml, permissions.yml, aliases.yml and errors.json to a safe place to help you configure the bot later, or in case you wish to downgrade.

### Backup Databases

If you are using SQLite for storage, copy your `database` folder to a safe place for migration after you upgrade.

### Update Python

Update your Python version to 3.9 (<https://www.python.org/downloads/>) and ensure it is set as the system default. Use `python3 -V` to test on Linux and macOS or `py -V` on Windows and ensure it displays 3.9 as the version.

### Update ZeoBot

After you have backed up your configuration files and databases, you will need to completely re-install ZeoBot as this is a significant upgrade. 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, make sure your database details are filled in the configuration.&#x20;

Now, open the `migration` folder, then open the `2.0.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. 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.0.0` folder.
{% 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.
{% endhint %}
