背景
因為 portal (BM_Nuwa) 的版本過舊,因此不打算移機,因此我們有備份 2023/3/18 以前的 protal 資料,如果有需要可以參考本篇內容去查詢。
如何開啟資料庫
- 請先到 DbGate 官網 下載 DbGate 並安裝
- 下載以下的 DB 檔案,這是我們備份 portal 的資料: database
- 點選 File >> Add connection

- Connection type 選擇 SQLite,Database file 剛才下載的 bm_nuwa.db

- 點選 Connect 即可開啟資料庫
- 右上方的 + 號(上圖的紅圈處)點下去會進入一個空白的 Query 頁面,可以在裡面輸入指令來查詢需要的資料
- 執行指令請按 crtl+enter 或是點選最下方的 Execute(下方的紅圈處)

各個 table 對應的資料
- project_task:ticket 本身的資訊,包含標題、描述、創建時間等等
- project_timeslot:ticket 的工作歷程,記錄當時的做了哪些事,分別花的時間
- core_updaterecord:ticket 的更動紀錄,comment 會記錄在裡面
- core_attachment:ticket 的附件紀錄,會記錄附件的名稱及位置
如何透過 ID 查詢到 ticket
例如舊 ticket 的網址如下:https://portal.nuwainfo.com/#/projects/task/view/1265
最後面的 1265 即是 ticket 的 ID,資料表則會在 projects_task 裡面,可將底下指令貼上 Query 的空白處:
select object_ptr_id, name, details from projects_task WHERE object_ptr_id=[ticket ID]
- name 表示標題
- detail 則是該 ticket 的描述
- detail 的部分,可以貼到 HTML 顯示 的左上角 HML 那格,按下 run (圖中紅圈處) ,看右下角的 result 可較方便查看內容

如何透過標題查詢到 ticket
select object_ptr_id, name, details from projects_task WHERE name LIKE '%[想查詢的關鍵字]%'

- object_ptr_id 表示 ticket ID
- name 表示標題
- details 表示該 ticket 的描述
如何找到 ticket 的工作細節及 work time
select details, ((strftime('%s', time_to)-strftime('%s', time_from))/60.0) as worktime from projects_tasktimeslot WHERE task_id=[Ticket ID]

- details 表示子工作描述
- worktime 表示該子工作的時間 (以分鐘計)
如何找到 ticket 的 comment
select u.date_created, u.body from (core_updaterecord_about as a join core_updaterecord as u on a.updaterecord_id = u.id) where record_type='manual' and a.object_id=[ticket ID]

- body 即是 comment
- body 的部分,可以貼到 HTML 顯示 的左上角 HML 那格,按下 run,看右下角的 result 可較方便查看內容
如何找到 ticket 的附件
select filename, attached_file, mimetype from core_attachment where attached_object_id=[ticketID]

- filename 是上傳時的 filename
- attached_file 是在 attachments 裡的檔名
- mimetype 是檔案的格式
- 請在 attachments 找到檔案,將副檔名改成 mimetype 斜線後的副檔名(例如:image/jpeg 則將副檔名改為 .jpeg) 即可開啟
