---
title: 升级指南
---

## 通用指南

**在开始升级过程之前，请务必备份您的数据库**，通过运行 `docker exec -it {db_container_name_or_id} pg_dumpall -U {postgres_user} > databases_backup.sql`。

要恢复备份，运行 `cat databases_backup.sql | docker exec -i {db_container_name_or_id} psql -U {postgres_user}`。

如果您使用了 Docker Compose，请按照以下步骤操作：

1. 在 Twenty 运行的主机上打开终端，关闭 Twenty：`docker compose down`

2. 通过更改 docker-compose 附近 .env 文件中的 `TAG` 值来升级版本。 （我们建议使用 `major.minor` 版本，例如 `v0.53`）

3. 用 `docker compose up -d` 重新启动 Twenty

如果您想要升级实例多个版本，例如从 v0.33.0 升级到 v0.35.0，您需要按顺序升级您的实例，例如从 v0.33.0 升级到 v0.34.0，然后从 v0.34.0 到 v0.35.0。

**确保每个升级后的版本都具有未损坏的备份。**

## 特定版本的升级步骤

## v1.0

Hello Twenty v1.0! 🎉

## v0.60

### 性能增强

与元数据 API 的所有交互已优化，以获得更好的性能，尤其是对象元数据操作和工作区创建操作。

我们重构了缓存策略，以在可能的情况下优先于数据库查询显著提高元数据 API 操作的性能。

如果在升级后遇到任何运行时问题，可能需要清空您的缓存以确保其与最新更改同步。 在 twenty-server 容器中运行此命令：

```bash
yarn command:prod cache:flush
```

### v0.55

升级您的 Twenty 实例以使用 v0.55 映像

您不再需要运行任何命令，新映像将自动处理所需的所有迁移。

### `User does not have permission` error

如果在大多数请求中出现授权错误，升级后可能需要清空您的缓存以重新计算最新的权限。

在你的 `twenty-server` 容器中，运行：

```bash
yarn command:prod cache:flush
```

此问题仅适用于此 Twenty 版本，未来的升级不应需要此操作。

### v0.54

自版本 `0.53` 开始，不需要手动操作。

#### 元数据模式弃用

我们已将 `metadata` 模式合并到 `core` 模式以简化从 `TypeORM` 数据的检索。
我们在 `upgrade` 命令中合并了 `migrate` 命令步骤。 我们不建议在任何 server/worker 容器内手动运行 `migrate`。

### 自 v0.53

从 `0.53` 起，升级在 `DockerFile` 内以编程方式完成，这意味着从现在起，您不必再手动运行任何命令。

确保保持顺序升级您的实例，不要跳过任何大版本（例如，允许从 `0.43.3` 升级到 `0.44.0`，但不能从 `0.43.1` 升级到 `0.45.0`），否则可能导致工作区版本不同步，可能导致运行时错误和功能缺失。

要检查是否正确迁移了工作区，您可以在数据库中查看其版本在 `core.workspace` 表中。

它应始终在您当前 Twenty 实例 `major.minor` 版本的范围内，您可以在管理面板中查看您的实例版本（在 `/settings/admin-panel`，如果您的用户在数据库中设置了 `canAccessFullAdminPanel` 属性为真则可访问）或通过在 `twenty-server` 容器中运行 `echo $APP_VERSION`。

要修复不同步的工作区版本，你将需要从相应的 Twenty 版本按照相关的升级指南顺序升级，等等，直到到达所需的版本。

#### `auditLog` 移除

我们已移除了 auditLog 标准对象，这意味着在此迁移后，备份的大小可能显著减少。

### v0.51 to v0.52

升级您的 Twenty 实例以使用 v0.52 映像

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

#### 我的工作区被锁定在 `0.52.0` 和 `0.52.6` 之间的版本

不幸的是，`0.52.0` 和 `0.52.6` 已从 dockerHub 完全移除。
您将需要在数据库中手动更新工作区版本到 `0.51.0`，并使用 Twenty 版本 `0.52.11` 进行升级，按照其上方的升级指南。

### v0.50 to v0.51

升级您的 Twenty 实例以使用 v0.51 映像

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

### v0.44.0 to v0.50.0

升级您的 Twenty 实例以使用 v0.50.0 映像

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

#### Docker-compose.yml 修改

此版本包括对 `docker-compose.yml` 的修改，以赋予 `worker` 服务对 `server-local-data` 卷的访问权限。
请使用 [v0.50.0 docker-compose.yml](https://github.com/twentyhq/twenty/blob/v0.50.0/packages/twenty-docker/docker-compose.yml) 更新本地主机上的 `docker-compose.yml`

### v0.43.0 to v0.44.0

升级您的 Twenty 实例以使用 v0.44.0 映像

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

### v0.42.0 to v0.43.0

升级您的 Twenty 实例以使用 v0.43.0 映像

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

在此版本中，我们还在 docker-compose.yml 中切换到了 postgres:16 映像。

#### （选项 1）数据库迁移

保留现有的 postgres-spilo 图像是可以的，但您需要在 docker-compose.yml 中将版本冻结为 0.43.0。

#### （选项 2）数据库迁移

如果您想将数据库迁移到新的 postgres:16 图像，请按照以下步骤操作：

1. 从旧的 postgres-spilo 容器中导出数据库

```
docker exec -it twenty-db-1 sh
pg_dump -U {YOUR_POSTGRES_USER} -d {YOUR_POSTGRES_DB} > databases_backup.sql
exit
docker cp twenty-db-1:/home/postgres/databases_backup.sql .
```

确保您的转储文件不为空。

2. 将您的 docker-compose.yml 升级为与 [docker-compose.yml](https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml) 文件中的 postgres:16 映像相同。

3. 将新 postgres:16 容器中的数据库恢复

```
docker cp databases_backup.sql twenty-db-1:/databases_backup.sql
docker exec -it twenty-db-1 sh
psql -U {YOUR_POSTGRES_USER} -d {YOUR_POSTGRES_DB} -f databases_backup.sql
exit
```

### v0.41.0 to v0.42.0

升级您的 Twenty 实例以使用 v0.42.0 映像

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

**环境变量**

* 移除：`FRONT_PORT`，`FRONT_PROTOCOL`，`FRONT_DOMAIN`，`PORT`
* 新增：`FRONTEND_URL`，`NODE_PORT`，`MAX_NUMBER_OF_WORKSPACES_DELETED_PER_EXECUTION`，`MESSAGING_PROVIDER_MICROSOFT_ENABLED`，`CALENDAR_PROVIDER_MICROSOFT_ENABLED`，`IS_MICROSOFT_SYNC_ENABLED`

### v0.40.0 to v0.41.0

升级您的 Twenty 实例以使用 v0.41.0 映像

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

**环境变量**

* 移除：`AUTH_MICROSOFT_TENANT_ID`

### v0.35.0 to v0.40.0

升级您的 Twenty 实例以使用 v0.40.0 映像

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

**环境变量**

* 新增：`IS_EMAIL_VERIFICATION_REQUIRED`，`EMAIL_VERIFICATION_TOKEN_EXPIRES_IN`，`WORKFLOW_EXEC_THROTTLE_LIMIT`，`WORKFLOW_EXEC_THROTTLE_TTL`

### v0.34.0 to v0.35.0

升级您的 Twenty 实例以使用 v0.35.0 映像

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

`yarn database:migrate:prod` 命令将迁移应用于数据库结构（核心和元数据模式）
`yarn command:prod upgrade-0.35` 负责所有工作区的数据迁移。

**环境变量**

* 我们将 `ENABLE_DB_MIGRATIONS` 替换为 `DISABLE_DB_MIGRATIONS`（默认值现在为 `false`，您可能不必设置任何东西）

### v0.33.0 to v0.34.0

升级您的 Twenty 实例以使用 v0.34.0 映像

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

`yarn database:migrate:prod` 命令将迁移应用于数据库结构（核心和元数据模式）
`yarn command:prod upgrade-0.34` 负责所有工作区的数据迁移。

**环境变量**

* 移除：`FRONT_BASE_URL`
* 新增：`FRONT_DOMAIN`，`FRONT_PROTOCOL`，`FRONT_PORT`

我们更新了前端 URL 的处理方式。
您现在可以使用 `FRONT_DOMAIN`，`FRONT_PROTOCOL` 和 `FRONT_PORT` 变量设置前端 URL。
如果未设置 FRONT_DOMAIN，前端 URL 将回退到 `SERVER_URL`。

### v0.32.0 to v0.33.0

升级您的 Twenty 实例以使用 v0.33.0 映像

```
yarn command:prod cache:flush
yarn database:migrate:prod
yarn command:prod upgrade-0.33
```

`yarn command:prod cache:flush` 命令将清空 Redis 缓存。
`yarn database:migrate:prod` 命令将迁移应用于数据库结构（核心和元数据模式）
`yarn command:prod upgrade-0.33` 负责所有工作区的数据迁移。

从该版本开始，用于 DB 的 twenty-postgres 图像已经弃用，并改用 twenty-postgres-spilo。
如果要继续使用 twenty-postgres 映像，只需在 docker-compose.yml 中将 `twentycrm/twenty-postgres:${TAG}` 替换为 `twentycrm/twenty-postgres` 即可。

### v0.31.0 to v0.32.0

升级您的 Twenty 实例以使用 v0.32.0 映像

**模式和数据迁移**

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

`yarn database:migrate:prod` 命令将迁移应用于数据库结构（核心和元数据模式）
`yarn command:prod upgrade-0.32` 负责所有工作区的数据迁移。

**环境变量**

我们更新了 Redis 连接的处理方式。

* 移除：`REDIS_HOST`，`REDIS_PORT`，`REDIS_USERNAME`，`REDIS_PASSWORD`
* 新增：`REDIS_URL`

更新您的 `.env` 文件以使用新 `REDIS_URL` 变量，而不是各个 Redis 连接参数。

我们也简化了我们处理 JWT 令牌的方式。

* 移除：`ACCESS_TOKEN_SECRET`，`LOGIN_TOKEN_SECRET`，`REFRESH_TOKEN_SECRET`，`FILE_TOKEN_SECRET`
* 新增：`APP_SECRET`

更新您的 `.env` 文件以使用新 `APP_SECRET` 变量，而不是各个令牌密钥（您可以使用以前的相同密钥或生成一个新的随机字符串）

**连接账户**

如果您使用已连接的帐户来同步您的谷歌电子邮件和日历，您需要在谷歌管理员控制台中激活 [People API](https://developers.google.com/people)。

### v0.30.0 to v0.31.0

升级您的 Twenty 实例以使用 v0.31.0 映像

**模式和数据迁移**：

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

`yarn database:migrate:prod` 命令将迁移应用于数据库结构（核心和元数据模式）
`yarn command:prod upgrade-0.31` 负责所有工作区的数据迁移。

### v0.24.0 to v0.30.0

升级您的 Twenty 实例以使用 v0.30.0 映像

**重大更改**：
为了提高性能，Twenty 现在要求配置 Redis 缓存。 我们更新了我们的 [docker-compose.yml](https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml) 来反映这一点。
确保更新您的配置并相应地更新您的环境变量：

```
REDIS_HOST={your-redis-host}
REDIS_PORT={your-redis-port}
CACHE_STORAGE_TYPE=redis
```

**模式和数据迁移**：

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

`yarn database:migrate:prod` 命令将迁移应用于数据库结构（核心和元数据模式）
`yarn command:prod upgrade-0.30` 负责所有工作区的数据迁移。

### v0.23.0 to v0.24.0

升级您的 Twenty 实例以使用 v0.24.0 映像

运行以下命令：

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

`yarn database:migrate:prod` 命令将迁移应用于数据库结构（核心和元数据模式）
`yarn command:prod upgrade-0.24` 负责所有工作区的数据迁移。

### v0.22.0 to v0.23.0

升级您的 Twenty 实例以使用 v0.23.0 映像

运行以下命令：

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

`yarn database:migrate:prod` 命令将迁移应用于数据库。
`yarn command:prod upgrade-0.23` 负责数据迁移，包括将活动转移到任务/笔记。

### v0.21.0 to v0.22.0

升级您的 Twenty 实例以使用 v0.22.0 映像

运行以下命令：

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

`yarn database:migrate:prod` 命令将迁移应用于数据库。
该 `yarn command:prod upgrade-0.22` 命令将应用特定的数据转换，以适配新的对象 defaultRequestInstrumentationOptions。
