---
title: 升級指南
image: /images/user-guide/notes/notes_header.png
---

<Frame>
  <img src="/images/user-guide/notes/notes_header.png" alt="Header" />
</Frame>

## 一般指南

**Always make sure to back up your database before starting the upgrade process** by running `docker exec -it {db_container_name_or_id} pg_dumpall -U {postgres_user} > databases_backup.sql`.

To restore backup, run `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. 更改 `.env` 文件中的 `TAG` 值來升級版本。 （我們建議使用 `major.minor` 版本，例如 `v0.53` ） （我們建議使用 `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

If you encounter authorization errors on most requests after upgrading, you may need to flush your cache to recompute the latest permissions.

在您的 `twenty-server` 容器中，運行：

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

此問題僅限於此 Twenty 版本，不應在將來的升級中要求。

### v0.54

自版本 `0.53`，無需手動操作。

#### 元數據架構棄用

我們已經將 `metadata` 架構合併到了 `core`，以簡化從 `TypeORM` 檢索數據。
我們已將 `migrate` 命令步驟合併到 `upgrade` 命令中。 我們不建議在任何 Server/Worker 容器中手動運行 `migrate`。
我們已將 `migrate` 命令步驟合併到 `upgrade` 命令中。 我們不建議在任何 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` 屬性為 true，即可訪問）或通過在 `twenty-server` 容器中運行 `echo $APP_VERSION`。

要修復未同步的工作空間版本，您需要從相應版本開始，一步一步升級 Twenty 並遵循相關升級指南，直到達到期望版本。

#### `auditLog` 移除

我們已刪除 auditLog 標準對象，這意味著此遷移後您的備份大小可能會顯著減少。

### v0.51到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` 並遵循其上方的升級指南。
您將需要手動將工作區版本更新到 `0.51.0` 在數據庫中，然後升級使用 Twenty 版本 `0.52.11` 並遵循其上方的升級指南。

### v0.50到v0.51

升級您的 Twenty 實例以使用 v0.51 映像

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

### v0.44.0到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` 卷。
請更新您的本地 `docker-compose.yml` 以使用 [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.50.0 docker-compose.yml](https://github.com/twentyhq/twenty/blob/v0.50.0/packages/twenty-docker/docker-compose.yml)。

### v0.43.0到v0.44.0

升級您的 Twenty 實例以使用 v0.44.0 映像

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

### v0.42.0到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 以使用 postgres:16 映像檔，如 [docker-compose.yml](https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.yml) 檔案中一樣。

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 到 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 到 v0.41.0

將你的 Twenty 實例升級到使用 v0.41.0 的映像檔

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

**環境變量**

- 移除：`AUTH_MICROSOFT_TENANT_ID`

### v0.35.0 到 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 到 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 到 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 的方式。
我們已經更新了處理前端 URL 的方式。
您現在可以使用 `FRONT_DOMAIN`, `FRONT_PROTOCOL` 和 `FRONT_PORT` 變量來設置前端 URL。
如果沒有設定 FRONT_DOMAIN，前端 URL 將回退到 `SERVER_URL`。
如果沒有設定 FRONT_DOMAIN，前端 URL 將回退到 `SERVER_URL`。

### v0.32.0 到 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` 負責所有工作區的數據遷移。
`yarn database:migrate:prod` 命令會將遷移應用到資料庫。
`yarn command:prod workspace:sync-metadata -f` 命令會將標準對象的定義同步到中繼資料表，並將所需的遷移應用到現有工作區。
`yarn command:prod upgrade-0.22` 命令會應用特定的數據轉換以適應新的對象 defaultRequestInstrumentationOptions。

從此版本開始，twenty-postgres 映像檔被棄用，改用 twenty-postgres-spilo。
從此版本開始，twenty-postgres 映像檔被棄用，改用 twenty-postgres-spilo。
如果你想繼續使用 twenty-postgres 映像檔，只需在 docker-compose.yml 中將 `twentycrm/twenty-postgres:${TAG}` 替換為 `twentycrm/twenty-postgres`。

### v0.31.0 到 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 連接參數。

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

- 移除：`ACCESS_TOKEN_SECRET`, `LOGIN_TOKEN_SECRET`, `REFRESH_TOKEN_SECRET`, `FILE_TOKEN_SECRET`
- 新增：`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)

**連接帳戶**

如果您使用連接帳號同步 Google 電郵和日曆，則需要在 Google 管理員控制台上啟用 [People API](https://developers.google.com/people)。

### v0.30.0 到 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 到 v0.30.0

將你的 Twenty 實例升級到使用 v0.30.0 的映像檔

**Breaking change**:
To enhance performances, Twenty now requires redis cache to be configured. 我們已更新 [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 到 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 到 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 到 v0.22.0

將你的 Twenty 實例升級到使用 v0.22.0 的映像檔

運行以下命令：

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

`yarn database:migrate:prod` 命令將應用到資料庫的遷移。
`yarn command:prod upgrade-0.23` 負責數據遷移，包括將活動轉到任務/筆記。
`yarn command:prod workspace:sync-metadata -f` 命令會將標準對象的定義同步到中繼資料表，並將所需的遷移應用到現有工作區。
`yarn command:prod upgrade-0.22` 命令會應用特定的數據轉換以適應新的對象 defaultRequestInstrumentationOptions。




