如何将任务从 Thunderbird 日历迁移到 Jira?

如何将任务从 Thunderbird 日历迁移到 Jira?

如何将我的任务从 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"
}

相关内容