最近準備要將用了十年(!)的問題追蹤系統Track+改為Redmine。當年使用Track+有其歷史因素,主要是當時有Open source,又是Java開發的,因此拿來加了簡體與繁體中文語言檔,又修改了一些網頁以適合我們兩岸團隊使用,沒想到一路就用了十年,中間有部份專案用過Trac 0.10,但並未普及,主要是既有資料沒有轉換到Trac的SQLite裡,自然無法順利轉換到新系統。這次要導入Redmine就必須匯入資料才行。
Redmine安裝
Windows裡安裝Redmine的最讚選擇:Bitnami Redmine Stack,用預設值安裝即可,內定會使用80 Port。
Redmine釋義
Redmine是使用Ruby on Rails,Ruby是紅寶石之意,Red-Mine應該就是具有紅色寶礦的涵義吧?
Redmine資料結構簡述
Redmine的schema還算簡單易懂,主要的狀況發生在projects與issues兩個資料表的lft、rgt欄位,所幸研究了一下後終於找到解釋的網站並有了處理方法。
首先在Redmineのチケット登録でのレコード生成調査看到issues資料表的欄位說明,第5回 SQLで木構造を扱う~入れ子集合モデル (1)入れ子集合モデルとは何か這篇則解釋了lft、rgt欄位存放的Nested Set的原理,又找到實際的資料範例說明:[MySQL][Redmine] 削除してしまったチケットを復活させる。有了這些基本認識後才有辦法寫轉檔程式,將Track+的TWorkitem匯出為issues資料表。
▼ Nested set範例
簡單說就是把Ticket記錄依專案名稱+Ticket號碼排序,lft與rgt分別啟始為1和2,再逐筆加2,當專案編號變換時,把此專案Ticket第一筆的lft與Ticket最後一筆的rgt寫入projects該專案記錄,如果有使用子Ticket,則root_id與parent_id也要額外再寫入。使用專案名稱排序的原因是Redmine的專案選單排序無法指定,預設是以projects.lft來排列,如果想要專案下拉選單仍依專案的英文字母排序,在產生lft時就要自己先排好。
大致的匯入SQL是:
truncate table issues; alter table issues AUTO_INCREMENT=1; INSERT INTO issues(id, tracker_id, project_id, subject, description, due_date, category_id, status_id, assigned_to_id, priority_id, fixed_version_id, author_id, lock_version, created_on, updated_on, start_date, done_ratio, estimated_hours, parent_id, root_id, lft, rgt, is_private, closed_on) VALUES (...);
issues.id可以使用原有的TWorkitem.WORKITEMKEY,讓新舊兩個系統的Ticket編號相同,可以節省許多資料核對的工夫。
Redmine設定
Redmine有幾個免費的Android client可以用,使用前必須在後台將Web Service選項打開:
另外,轉檔過程中需要頻繁參考Redmine的MySQL資料表,使用下列指令讓外部也可以取存到MySQL:
grant all privileges on *.* to 'root'@'%' identified by 'your_root_password' with grant option
幾個Redmine的重要資料夾:
- Redmine系統目錄:[Redmine安裝目錄]\apps\redmine
- Redmine設定目錄:[Redmine安裝目錄]\apps\redmine\conf
- 附件目錄:[Redmine安裝目錄]\apps\redmine\htdocs\files\西元年\月份
目前安裝了的外掛
用Redmine的好處之一就是有很多的外掛可以使用,但使用了幾個發覺版本標示不準確,雖然標示2.6版相容,但掛上後卻會錯誤,似乎是外掛需要建立新的資料表,但外掛卻不會自動建立?這個有賴Redmine使用先進們協助了。目前安裝了下列外掛:
- Code Highlight plugin:https://github.com/mediatainment/redmine-codebutton
- Redmine Lightbox 2:https://github.com/paginagmbh/redmine_lightbox2
- Redmine Status Button plugin:http://web.4399.com/
參考
- 打造軟體團隊(12): 搭配IT工具-Project Management, Issue tracking system:http://ithelp.ithome.com.tw/question/10103207
- Redmine資料庫schema:http://www.redmine.org/projects/redmine/wiki/DatabaseModel
##
您可能也會有興趣的類似文章
- 使用FireFox插件存取SQLite資料庫 (0則留言, 2008/01/23)
- 終於比較清楚Aqua Data Studio的Execute Current要如何操作了 (0則留言, 2005/01/31)
- 歡迎使用 Trac 0.10.4 (0則留言, 2007/07/25)
- 將Trac 0.10.4中文版公佈到Google Code (6則留言, 2007/09/08)
- Trac的Issue Ticket狀態管理 (1則留言, 2007/09/08)
- 自動產生文章目錄的WordPress外掛:jQuery Table of Contents (2則留言, 2010/06/13)
- 用Aqua Data Studio存取Trac.db以加速權限設定 (0則留言, 2007/07/14)
- iPad超方便記事本:Nebulous Notes (2則留言, 2011/10/26)
- 使用ownCloud建立私有的Dropbox雲端硬碟服務 (0則留言, 2012/12/20)
- [WordPress] 用wp-visitors外掛記錄訪客資訊 (6則留言, 2008/12/25)
- SpaceFM:雙面板、多分頁的檔案+資料夾管理工具 (2則留言, 2013/11/13)
- Xuite樣式研讀攻略! (1則留言, 2005/06/04)
- Toodledo官方版Android App終於推出了 (0則留言, 2014/01/28)
- IntelliJ IDEA 12的任務功能,與Issue/Bug Tracking System整合 (0則留言, 2013/07/20)
- 幫Xuite增加單篇文章的雙擊快速編輯功能 (1則留言, 2007/08/15)