---
date: "2021-09-02T16:00:00+08:00"
slug: "upgrade-from-gitea"
sidebar_position: 100
aliases:
  - /zh-tw/upgrade-from-gitea
---

# 從舊版 Gitea 升級

按照以下步驟確保順利升級到新版本的 Gitea。

## 檢查變更日誌中的重大變更

為了使 Gitea 更好，一些重大變更是不可避免的，特別是對於大里程碑版本。
在升級之前，請閱讀 [Gitea 部落格上的變更日誌](https://blog.gitea.com/)
並檢查這些重大變更是否會影響您的 Gitea 實例。

## 驗證沒有已棄用的設定選項

Gitea 的新版本通常會帶有更改的設定語法或選項，這些選項通常會在站點管理面板頂部顯示至少一個發布週期。如果這些警告未解決，Gitea 可能會拒絕在下一版本中啟動。

## 降級備份

Gitea 保持對補丁版本的相容性，其前兩個欄位相同（`a.b.x` -> `a.b.y`），
這些補丁版本可以使用相同的資料庫結構進行升級和降級。
否則（`a.b.?` -> `a.c.?`），較新的 Gitea 版本將升級舊資料庫
到可能與舊版本不同的新結構。

例如：

| 從    | 到    | 結果                                                                                              |
| ----- | ----- | ------------------------------------------------------------------------------------------------- |
| 1.4.0 | 1.4.1 | ✅                                                                                                |
| 1.4.1 | 1.4.0 | ⚠️ 不建議，請自行承擔風險！雖然如果資料庫結構沒有更改，它可能會工作，但強烈建議使用備份進行降級。 |
| 1.4.x | 1.5.y | ✅ 資料庫已升級。您可以直接從 1.4.x 升級到最新的 1.5.y。                                          |
| 1.5.y | 1.4.x | ❌ 資料庫已經升級，無法用於舊版 Gitea，請使用備份進行降級。                                       |

**由於您無法運行升級後的資料庫的舊版 Gitea，
在資料庫升級之前應始終進行備份。**

如果您在生產環境中使用 Gitea，強烈建議在升級之前進行備份，
即使升級是在補丁版本之間進行的。

備份步驟：

- 停止 Gitea 實例
- 備份資料庫
- 備份 Gitea 設定
- 備份 `APP_DATA_PATH` 中的 Gitea 資料文件
- 備份 Gitea 外部儲存（例如：S3/MinIO 或其他使用的儲存）

如果您使用雲服務或具有快照功能的文件系統，
為 Gitea 資料卷和相關對象儲存建立快照更方便。

在所有步驟準備就緒後，下載新版本，停止應用程式，執行備份，
然後啟動新應用程式。在每次啟動時，Gitea 會驗證資料庫是否是最新的，並自動
執行任何必要的遷移。根據資料庫的大小，這可能會在
首次啟動期間需要一些額外時間，期間應用程式將不可用。

## 使用 Docker 升級

- `docker pull` 最新的 Gitea 版本。
- 停止運行的實例，備份資料。
- 使用 `docker` 或 `docker-compose` 啟動較新的 Gitea Docker 容器。

## 從包升級

- 停止運行的實例，備份資料。
- 使用您的套件管理器將 Gitea 升級到最新版本。
- 啟動 Gitea 實例。

## 從二進制文件升級

- 將最新的 Gitea 二進制文件下載到臨時目錄。
- 停止運行的實例，備份資料。
- 用下載的二進制文件替換已安裝的 Gitea 二進制文件。
- 啟動 Gitea 實例。

可以在 Gitea 的源程式碼樹中找到一個自動執行這些步驟的腳本，用於在 Linux 上部署 [`contrib/upgrade.sh`](https://github.com/go-gitea/gitea/blob/main/contrib/upgrade.sh)。

## 注意自訂模板

Gitea 的模板結構和變量可能會在版本之間發生變化，如果您使用自訂模板，
請注意您的模板是否與您使用的 Gitea 版本相容。

如果自訂模板與 Gitea 版本不匹配，您可能會遇到：
`50x` 伺服器錯誤，頁面元件丟失或故障，頁面佈局異常，...
刪除或更新不相容的模板，Gitea 網頁將再次正常工作。
