# 3.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. If using PostgreSQL/MySQL, you should create a database dump.

### Update Python

Update your Python version to 3.10 (<https://www.python.org/downloads/>). Use `python3 -V` to test on Linux and macOS or `py -V` on Windows and ensure it displays 3.10 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 complete rewrite. Download the latest release from BuiltByBit, and unzip it to a different folder. Make sure there are no traces of the old version in this folder.

### Migrate Databases

Download the database migration tool from [here](https://cdn.zingyawesome.com/go/s4xHp) and unarchive it.

After unarchiving the file, open the `db.yml` file. If you are using SQLite, set the `database_type` to `sqlite` and paste all your database files into the `database` folder.\
If you are using PostgreSQL/MySQL, set the `database_type` accordingly and enter your database details.

Now run the `migrate.py` file. (`python3 migrate.py` for macOS and Linux or `py -3.10 migrate.py` for Windows).&#x20;

{% hint style="warning" %}
Make sure you have a backup of your databases before migration!
{% 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/MySQL.
{% endhint %}

### 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 [start guide](https://docs.zingyawesome.com/installation/3.-dependencies).&#x20;
