--- title: 升級指南 image: /images/user-guide/notes/notes_header.png --- Header ## 一般指南 **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。