升級¶
以下文件基於升級到 Redmine 2.x 和更高版本。您可以在此處查看升級到 Redmine 1.x 的先前版本。
- 目錄
- 升級
步驟 1 - 檢查需求¶
升級 Redmine 的第一步是檢查您是否符合即將安裝版本的需求。
步驟 2 - 備份¶
建議您備份資料庫和檔案上傳。大多數升級都是安全的,但為了以防萬一,備份總是好的。
若要了解如何備份 Redmine,請閱讀備份和還原 Redmine。
步驟 3 - 執行升級¶
現在該執行實際的升級了。此過程會因您下載 Redmine 的方式而異。您只需要執行以下選項中的一個。
選項 1 - 下載穩定版本¶
1. 下載tar.gz 或 zip 格式的版本,並將新的程式壓縮檔解壓縮到新的目錄中。
請確保新解壓縮和複製的檔案和目錄已設定正確的所有者和群組,以便執行應用程式伺服器的使用者/群組可以實際存取檔案。
此外,請記住要新增 files
、log
和 tmp
目錄的寫入權限。
2. 將資料庫設定檔 config/database.yml
複製到新的 config
目錄中。如果您使用 mysql 和 ruby1.9 執行 Redmine >= 1.4,請將資料庫轉接器更改為 mysql2
。
3a. 將基本組態設定檔 config/configuration.yml
複製到新的 config
目錄中。
3b. 或者,如果從 1.2.0 之前的版本升級,請將 config/email.yml
中的電子郵件設定複製到新的 config/configuration.yml
檔案中,該檔案可以透過複製現有的 configuration.yml.example
檔案來建立。
4. 將 files
目錄的內容複製到新的安裝中(此目錄包含所有已上傳的檔案)。
5. 將自訂外掛的資料夾從 plugins
目錄(如果從 1.x 版本升級,則為 vendor/plugins
目錄)複製到新的安裝 plugins
目錄中。請確保您只複製最初未與先前的 Redmine 設定捆綁在一起的外掛。
6. 執行以下指令安裝必要的 gem:
bundle config set --local without 'development test' bundle install
系統只會安裝您在資料庫設定檔中指定的轉接器所需的 gem(例如:如果您的 config/database.yml 使用 'mysql2' 轉接器,則只會安裝 mysql2 gem)。當您變更 config/database.yml 以使用其他資料庫轉接器時,請勿忘記重新執行 `bundle install`。
如果您需要載入 Redmine 核心不需要的一些 gem(例如:fcgi),您可以在 redmine 目錄的根目錄下建立一個名為 Gemfile.local 的檔案。它會在執行 `bundle install` 時自動載入。
7. 在新的 Redmine 根目錄下執行以下指令:
如果您是從 Redmine 2.x 或更早版本升級,請刪除以下檔案(如果有的話):- config/initializers/secret_token.rb
然後在應用程式目錄下執行以下指令以產生新的 secret:
bundle exec rake generate_secret_token
或者,您可以將此 secret 儲存在 config/secrets.yml 中
https://rails-guides.dev.org.tw/upgrading_ruby_on_rails.html#config-secrets-yml
8. 檢查您可能已安裝在 public/themes
目錄中的任何佈景主題。您可以複製它們,但最好檢查是否有更新的版本。
非常重要:請勿使用舊的 config/settings.yml
覆寫。
選項 2 - 從 SVN 版本庫升級¶
1. 前往 Redmine 根目錄並執行以下指令:
svn update
2. 執行以下指令以安裝必要的 gem:
bundle update
步驟 4 - 更新資料庫¶
此步驟可能會變更資料庫的內容。前往新的 redmine 目錄,然後遷移您的資料庫
bundle exec rake db:migrate RAILS_ENV=production
如果您已安裝任何外掛,您也應該執行其資料庫遷移
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
步驟 5 - 清理¶
1. 清除快取
bundle exec rake tmp:cache:clear RAILS_ENV=production
2. 重新啟動應用程式伺服器(例如:puma、thin、passenger)
3. 最後前往「管理 -> 角色與權限」以檢查/設定新功能的權限(如果有的話)。
常見問題¶
儲存庫管理錯誤¶
reposman.rb 檔案中新增了幾個新功能,如果您遇到問題,請確保您已指定群組(--group=您的群組名稱)。此外,如果您只複製了 Redmine.pm,請務必再次按照這裡的說明進行操作,並更新您的 Apache 設定,因為建議的設定已變更。
產生新的 secret_token.rb
¶
在 2.0.0 之前,需要在 Redmine 的 config
目錄中產生 session_store.rb
檔案,才能使基於 Cookie 的工作階段正常運作。
從 2.0.0 開始,不應存在 session_store.rb
檔案。相反地,以下指令將會產生 secret_token.rb
檔案
bundle exec rake generate_secret_token
注意:Redmine 的程式碼儲存庫不包含 config/initializers/secret_token.rb 檔案,它是透過上述 rake 指令建立的。
相關資源¶
這些資源可能會幫助您升級 Redmine
- 使用 SQLite 從 Redmine 1.x 升級後瀏覽 Wiki 歷程記錄時發生錯誤:請參閱 #12501
- Apache2 的 mod_fcgid 幫助我們在 Apache 2 上執行 Rails
- 在 Apache 上執行 Redmine
- 關於我們從 0.8.6 升級到 0.9.3 的問題以及如何解決這些問題的說明 --cybersprocket (2010-04-25)
- 我們從 0.9.6 升級到 1.0(RC) 的過程筆記 --cybersprocket (2010-08-14)