如何将我的任务从 Thunderbird 日历迁移到 Jira?
答案1
如果您的任务位于.ics
文件(您订阅的日历)中,请在 Thunderbird 中创建一个新的本地日历。然后将任务导入该日历。(Events and tasks | Import...
)
Thunderbird 将您配置文件文件夹中的本地日历的日历数据存储在文件(calendar-data/local.sqlite
一个 SQLite 数据库文件)中。
关闭 Thunderbird,这样所有数据都将刷新到该数据库文件。
在 SQLite 客户端(例如 Firefox 插件)中打开数据库文件SQLite 管理器。
如果您只需要迁移创建时间、修改时间、标题、开始日期、到期日期和描述,则可以执行以下 SQL 查询。如果您需要位置、类别、附件或更多,则会更加复杂。
select
'Task' as issuetype,
datetime(t.time_created / 1000000, 'unixepoch', 'localtime') as time_created,
datetime(t.last_modified / 1000000, 'unixepoch', 'localtime') as last_modified,
t.title,
datetime(t.todo_entry / 1000000, 'unixepoch', 'localtime') as start,
datetime(t.todo_due / 1000000, 'unixepoch', 'localtime') as due,
p.value as description
from cal_todos t left
outer join cal_properties p
on t.id = p.item_id and p.key = 'DESCRIPTION'
-- where t.todo_completed is null -- filter open tasks only
将查询结果导出到CSV文件。
SQLite 管理器无法转义换行符,因此您可能需要通过添加引号手动执行此操作。
在 Jira 中Settings | System | Import and Export | External System Import
,根据我保存的导入配置中的这段摘录选择CSV
并配置导入:
{
...
"config.field.mappings" : {
"issuetype" : {
"jira.field" : "issuetype",
"userChanged" : "true",
"manualMapping" : "false"
},
"due" : {
"jira.field" : "duedate",
"userChanged" : "true",
"manualMapping" : "false"
},
"start" : {
"jira.field" : "startdate",
"userChanged" : "true",
"manualMapping" : "false",
},
"time_created" : {
"jira.field" : "created",
"userChanged" : "true",
"manualMapping" : "false"
},
"description" : {
"jira.field" : "description",
"userChanged" : "true",
"manualMapping" : "false"
},
"title" : {
"jira.field" : "summary",
"userChanged" : "true",
"manualMapping" : "false"
},
"last_modified" : {
"jira.field" : "updated",
"userChanged" : "true",
"manualMapping" : "false"
}
},
...
"config.delimiter" : ",",
...
"config.date.format" : "yyyy-MM-dd HH:mm:ss"
}