# 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](/installation/3.-dependencies.md) 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 %}


---

# 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/2.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.
