通用指南
在开始升级过程之前,请务必备份您的数据库,通过运行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,请按照以下步骤操作:
-
在 Twenty 运行的主机上打开终端,关闭 Twenty:
docker compose down -
通过更改 docker-compose 附近 .env 文件中的
TAG值来升级版本。 (我们建议使用major.minor版本,例如v0.53) -
用
docker compose up -d重新启动 Twenty
特定版本的升级步骤
v1.0
Hello Twenty v1.0! 🎉v0.60
性能增强
与元数据 API 的所有交互已优化,以获得更好的性能,尤其是对象元数据操作和工作区创建操作。 我们重构了缓存策略,以在可能的情况下优先于数据库查询显著提高元数据 API 操作的性能。 如果在升级后遇到任何运行时问题,可能需要清空您的缓存以确保其与最新更改同步。 在 twenty-server 容器中运行此命令:v0.55
升级您的 Twenty 实例以使用 v0.55 映像 您不再需要运行任何命令,新映像将自动处理所需的所有迁移。User does not have permission error
如果在大多数请求中出现授权错误,升级后可能需要清空您的缓存以重新计算最新的权限。
在你的 twenty-server 容器中,运行:
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 映像我的工作区被锁定在 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 映像v0.44.0 to v0.50.0
升级您的 Twenty 实例以使用 v0.50.0 映像Docker-compose.yml 修改
此版本包括对docker-compose.yml 的修改,以赋予 worker 服务对 server-local-data 卷的访问权限。
请使用 v0.50.0 docker-compose.yml 更新本地主机上的 docker-compose.yml
v0.43.0 to v0.44.0
升级您的 Twenty 实例以使用 v0.44.0 映像v0.42.0 to v0.43.0
升级您的 Twenty 实例以使用 v0.43.0 映像(选项 1)数据库迁移
保留现有的 postgres-spilo 图像是可以的,但您需要在 docker-compose.yml 中将版本冻结为 0.43.0。(选项 2)数据库迁移
如果您想将数据库迁移到新的 postgres:16 图像,请按照以下步骤操作:- 从旧的 postgres-spilo 容器中导出数据库
- 将您的 docker-compose.yml 升级为与 docker-compose.yml 文件中的 postgres:16 映像相同。
- 将新 postgres:16 容器中的数据库恢复
v0.41.0 to v0.42.0
升级您的 Twenty 实例以使用 v0.42.0 映像- 移除:
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 映像- 移除:
AUTH_MICROSOFT_TENANT_ID
v0.35.0 to v0.40.0
升级您的 Twenty 实例以使用 v0.40.0 映像- 新增:
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 负责所有工作区的数据迁移。
环境变量
- 我们将
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 负责所有工作区的数据迁移。
环境变量
- 移除:
FRONT_BASE_URL - 新增:
FRONT_DOMAIN,FRONT_PROTOCOL,FRONT_PORT
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 命令将清空 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 负责所有工作区的数据迁移。
环境变量
我们更新了 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。
v0.30.0 to v0.31.0
升级您的 Twenty 实例以使用 v0.31.0 映像 模式和数据迁移: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 来反映这一点。 确保更新您的配置并相应地更新您的环境变量: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 负责所有工作区的数据迁移。
v0.22.0 to v0.23.0
升级您的 Twenty 实例以使用 v0.23.0 映像 运行以下命令: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 命令将应用特定的数据转换,以适配新的对象 defaultRequestInstrumentationOptions。