# 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](/installation/3.-dependencies.md).&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zingyawesome.com/upgrading/3.0.0-upgrade-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
