從舊版 Gitea 升級
在升級之前,您需要做如下的準備工作。
為重大變更檢查更新日誌
為了讓 Gitea 變得更好,進行重大變更是不可避免的,尤其是一些里程碑更新的發佈。 在更新前,請 在 Gitea 部落格上閱讀更新日誌 並檢查重大變更是否會影響你的 Gitea 實例。
在控制面板中檢查過期的設定項
一些設定項可能會在後續版本中過期,你需要在控制面板中檢查他們。如果不解決過期的設定項, Gitea也許會在升級後無法重啟。你可以訪問 https://docs.gitea.com 獲得要升級的版本 對應的文件來修改你的設定文件。
降級前的備份
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 設定文件
- 備份 Gitea 在
APP_DATA_PATH中的資料文件 - 備份 Gitea 的外部儲存 (例如: S3/MinIO 或被使用的其他儲存)
如果你在使用雲服務或擁有快照功能的文件系統, 最好對 Gitea 的資料盤及相關資料儲存進行一次快照。
在所有上述步驟準備妥當之後,要升級 Gitea,只需要下載新版,停止運行舊版,進行資料備份,然後運行新版就好。 每次 Gitea 實例啟動時,它都會檢查是否要進行資料庫遷移。 如果需要進行資料庫遷移,Gitea 會花一些時間完成升級然後繼續服務。
從 Docker 升級
docker pull拉取 Gitea 的最新發布版。- 停止運行中的實例,備份資料。
- 使用
docker或docker-compose啟動較新的 Gitea Docker 容器.
從包升級
- 停止運行中的實例,備份資料。
- 使用你的套件管理器更新 Gitea 到最新版本。
- 啟動 Gitea 實例。
從二進制升級
- 下載最新的 Gitea 二進制文件到臨時文件夾中。
- 停止運行中的實例,備份資料。
- 將舊的 Gitea 二進制文件覆蓋成新的。
- 啟動 Gitea 實例。
在 Linux 系統上自動執行以上步驟的腳本可在 Gitea 的 source tree 中找到 contrib/upgrade.sh 來獲取.
小心你的自訂模板
Gitea 的模板結構與變量可能會隨著各個版本的發佈發生變化,如果你使用了自訂模板, 你得注意你的模板與你使用的 Gitea 版本的相容性。
如果自訂模板與 Gitea 版本不相容,你可能會遇到:
50x 伺服器錯誤,頁面元素丟失或故障,莫名其妙的頁面佈局,等等…
移除或更新不相容的模板,Gitea Web 纔可以正常工作。