一般ガイドライン
アップグレードを開始する前に、必ずデータベースをバックアップしてください。次を実行してください:- Twentyを停止:
docker compose down docker-compose.ymlと同じディレクトリにある.envファイルのTAG値を変更します- Twentyを起動:
docker compose up -d
クロスバージョンのアップグレード (v1.22+)
v1.22 以降、Twenty はクロスバージョンのアップグレードをサポートします。 サポートされている任意のバージョンから、中間バージョンを段階的に経ることなく、最新リリースへ直接移行できます。 たとえば、v1.22 から v2.0 へ直接アップグレードすることが完全にサポートされています。v2.5 以降へのアップグレード — 保存データ暗号化エンベロープ
v2.5 以降、Twenty は保存時のシークレット(OAuth トークン、アプリケーション変数、署名用の秘密鍵、機密な設定値、TOTP シークレット)を、バージョン付きのenc:v2: エンベロープ内に格納し、ENCRYPTION_KEY(ENCRYPTION_KEY が未設定の場合は APP_SECRET)で暗号化します。
v2.5 での最初の起動時には、既存の行を新しいエンベロープにバックフィルする低速なアップグレードコマンドが実行されます。 これらは冪等であり、中断してサーバーを再起動しても処理が中断地点から再開されますが、大規模なデータベースでは時間がかかる場合があります。 upgrade:status で進行状況を監視できます。
バックフィルが最初からそのキーの下に行を書き込めるよう、v2.5 へのアップグレード前に専用の ENCRYPTION_KEY を設定しておく必要があります。 バックフィル後にキーを切り替えるには、ローテーションが必要です。
シークレットおよび署名鍵のローテーション
ENCRYPTION_KEY のローテーション、JWT 署名鍵のローテーション、漏えいした署名鍵の失効といった日常的な運用タスクについては、専用の鍵ローテーションガイドを参照してください。
アップグレードステータスの確認
upgrade:status コマンドを使用すると、インスタンスとワークスペースのマイグレーションの現在の状態を確認できます。 アップグレードの問題をデバッグしたり、サポートリクエストを提出する際に役立ちます。
サーバーコンテナから実行します:
オプション
| フラグ | 説明 |
|---|---|
-w, --workspace-id <id> | 特定のワークスペースに絞り込みます。 複数回指定できます。 |
-f, --failed-only | 最新の状態のワークスペースを非表示にし、遅れているものと失敗したエントリのみを表示します。 |
トラブルシューティング
一部のワークスペースでアップグレードが失敗した場合、サーバーは失敗したステップを超えて先に進みません。 サーバーを再起動すると(docker compose up -d)、中断した地点からアップグレードを再試行します。
問題を迅速に特定するには、次を実行します: