e0d4492013
Created by Github action Co-authored-by: github-actions <github-actions@twenty.com>
382 lines
12 KiB
Plaintext
382 lines
12 KiB
Plaintext
---
|
||
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 workspace:sync-metadata -f
|
||
yarn command:prod upgrade-0.22
|
||
```
|
||
|
||
`yarn database:migrate:prod` 命令将迁移应用于数据库。
|
||
该 `yarn command:prod workspace:sync-metadata -f` 命令将把标准对象的定义同步到元数据表,并将所需的迁移应用到现有工作区。
|
||
该 `yarn command:prod upgrade-0.22` 命令将应用特定的数据转换,以适配新的对象 defaultRequestInstrumentationOptions。
|