---
title: Upgrade guide
icon: TbCloud
image: /images/user-guide/notes/notes_header.png
---

## General guidelines 

Always make sure to backup your database before starting the upgrade process.

## If you used Docker Compose

1. In a terminal, on the host where Twenty is running, turn off Twenty: `docker compose down`

2. Upgrade the version by changing the `TAG` value in the .env file near your docker-compose.

3. Bring Twenty back online with `docker-compose up -d`
 
## Data Migration

Migrating a CRM is a bit trickier than migrating a traditional software, because the data model of Standard Object has to evolve smoothly along your custom objects.

## v0.21.0 to v0.22.0

Upgrade your Twenty instance to use v0.22.0 image

Run the following commands:

```
yarn database:migrate:prod 
yarn command:prod workspace:sync-metadata -f 
yarn command:prod upgrade-0.22
```

The `yarn database:migrate:prod` command will apply the migrations to the Database.  
The `yarn command:prod workspace:sync-metadata -f` command will sync the definition of standard objects to the metadata tables and apply to required migrations to existing workspaces.  
The `yarn command:prod upgrade-0.22` command will apply specific data transformations to adapt to the new object defaultRequestInstrumentationOptions.

## v0.22.0 to v0.23.0

Upgrade your Twenty instance to use v0.23.0 image

Run the following commands:

```
yarn database:migrate:prod 
yarn command:prod upgrade-0.23
```

The `yarn database:migrate:prod` command will apply the migrations to the Database.  
The `yarn command:prod upgrade-0.23` takes care of the data migration, including transferring activities to tasks/notes.

## v0.23.0 to v0.24.0

Upgrade your Twenty instance to use v0.24.0 image

Run the following commands:

```
yarn database:migrate:prod
yarn command:prod upgrade-0.24
```

The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas)
The `yarn command:prod upgrade-0.24` takes care of the data migration of all workspaces.

## v0.24.0 to v0.30.0

Upgrade your Twenty instance to use v0.30.0 image

**Breaking change**: 
To enhance performances, Twenty now requires redis cache to be configured. We have updated our [docker-compose.yml](https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml) to reflect this.
Make sure to update your configuration and to update your environment variables accordingly:
```
REDIS_HOST={your-redis-host}
REDIS_PORT={your-redis-port}
CACHE_STORAGE_TYPE=redis
```

**Schema and data migration**: 
```
yarn database:migrate:prod
yarn command:prod upgrade-0.30
```

The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas)
The `yarn command:prod upgrade-0.30` takes care of the data migration of all workspaces.

## v0.30.0 to v0.31.0

Upgrade your Twenty instance to use v0.31.0 image

**Schema and data migration**: 
```
yarn database:migrate:prod
yarn command:prod upgrade-0.31
```

The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas)
The `yarn command:prod upgrade-0.31` takes care of the data migration of all workspaces.

## v0.31.0 to v0.32.0

Upgrade your Twenty instance to use v0.32.0 image

**Schema and data migration**: 
```
yarn database:migrate:prod
yarn command:prod upgrade-0.32
```

The `yarn database:migrate:prod` command will apply the migrations to the database structure (core and metadata schemas)
The `yarn command:prod upgrade-0.32` takes care of the data migration of all workspaces.

### Environment Variables

We have updated the way we handle the Redis connection.

- Removed: `REDIS_HOST`, `REDIS_PORT`, `REDIS_USERNAME`, `REDIS_PASSWORD`
- Added: `REDIS_URL`

Update your `.env` file to use the new `REDIS_URL` variable instead of the individual Redis connection parameters.

We have also simplifed the way we handle the JWT tokens.

- Removed: `ACCESS_TOKEN_SECRET`, `LOGIN_TOKEN_SECRET`, `REFRESH_TOKEN_SECRET`, `FILE_TOKEN_SECRET`
- Added: `APP_SECRET`

Update your `.env` file to use the new `APP_SECRET` variable instead of the individual tokens secrets (you can use the same secret as before or generate a new random string)

<ArticleEditContent></ArticleEditContent>