Page tree
Skip to end of metadata
Go to start of metadata

此页面介绍了如何将单个项目从备份文件还原到 JIRA 实例。其中还包括有关如何将项目从 JIRA Cloud 迁移到 JIRA Server 的说明。

如果您不希望在导入整个备份时覆盖现有的项目或 JIRA 实例的配置,那么这个功能非常有用。您的备份文件必须是通过 JIRA 的备份工具创建的。您不能使用本地数据库工具从备份中导入项目。

如果您希望将项目从备份文件还原到新的空白 JIRA 实例中,我们强烈建议您不要使用 Project Import 工具。在这种情况下,更简单的方法就是将整个备份文件还原到新的实例中,然后删除不需要的项目,因为您可以从备份中保留配置设置。有关将项目迁移到新实例的说明,请参见 拆分 JIRA 应用 页面。项目可以在 JIRA 中通过“Projects”页面进行删除,这可通过“*Administration”菜单访问。

本页内容:

开始之前

从备份中还原项目并不是一项轻松的任务。您可能需要变更目标 JIRA 实例的配置以适应项目导入。此外,如果您正在导入大型项目,则 Project Import 数据映射可能会占用硬件上的大量资源,并且可能需要花费很长时间才能完成。请注意,Project Import 工具会在实际的数据导入过程(而不是验证过程)中锁定您的 JIRA 实例,因此,请确保在此期间不需要访问您的实例。

我们强烈建议您先对目标 JIRA 实例进行完整备份,然后再尝试将项目还原到其中。

(warning) 注意:要执行以下所有步骤,您必须以具有 JIRA Administrators 全局权限的用户身份登录。

项目导入限制

Project Import 工具只在相同的 JIRA 实例之间导入项目。也就是说,

  • 创建了备份的 JIRA 版本必须与目标 JIRA 实例的版本相同,例如,如果备份文件是在 JIRA 6.4 中创建的,那么目标 JIRA 实例的版本也必须是 6.4。
  • 如果您的 JIRA 实例在创建备份文件时安装了任何 定义,并且项目中使用了自定义字段,那么目标 JIRA 实例必须安装相同版本的插件才能让 Project Import 工具的导入过程顺利完成。

在 JIRA 7.0 中,相同 JIRA 实例间的 Project Import 功能支持一些活动对象 (Active Objects) 数据。例如:

  • 能够导入的数据:JIRA Software 的 Sprint 数据和排序数据
  • 无法导入的数据:JIRA Software 的面板配置数据和 Service Desk 客户门户

有关扩展 Project Import 功能的更多信息,请参见指南 - 扩展 JIRA Import 插件

如果其中的任意一条限制存在,而您仍希望将项目从备份中还原,就需要先创建兼容的备份文件才能导入项目,具体说明如下:

JIRA 版本不匹配

  • 如果用于创建备份文件的 JIRA 版本比目标 JIRA 实例的版本低:
    1. 请设置测试 JIRA 实例,其版本与目标 JIRA 实例的版本相同。请确保测试 JIRA 实例使用了与目标 JIRA 实例不同的数据库和索引。
    2. 将备份文件导入测试 JIRA 实例。(这将完全覆盖测试实例。)
    3. 从测试 JIRA 实例创建新的备份文件。您现在可以使用此备份将特定项目导入目标生产实例。
  • 如果您的备份文件来自比目标 JIRA 实例更新的 JIRA 版本:
    1. 升级 目标 JIRA 实例的版本以匹配创建备份的 JIRA 版本。

自定义字段插件版本不匹配

  • 如果备份中的自定义字段插件的版本比目标 JIRA 实例中的自定义字段插件的版本低:
    1. 将备份文件导入测试 JIRA 实例。请确保测试 JIRA 实例使用了与目标 JIRA 实例不同的数据库和索引,因为导入操作将覆盖数据库中的所有数据。
    2. 在测试 JIRA 实例中,升级自定义字段插件的版本,使其与目标 JIRA 实例中插件的版本相匹配。
    3. 从测试 JIRA 实例创建新的备份文件
  • 如果备份中的自定义字段插件的版本比目标 JIRA 实例中的自定义字段插件的版本高:
    1. 升级目标 JIRA 实例中的自定义字段插件版本以匹配创建备份的 JIRA 版本。

将项目从 JIRA Cloud 还原到 JIRA Server

您无法将项目直接从 JIRA Cloud 导入 JIRA Server,否则,导入程序将显示版本不匹配的错误。如果您想将项目从 JIRA Cloud 还原到 JIRA Server,请按照以下步骤操作:

  1. 安装一个新的 JIRA 实例(不是您要导入项目的 JIRA 实例,而是另外一个)。这是一个临时实例,用于存储来自 JIRA Cloud 的完整 JIRA 导入项目。请确保此临时实例的版本与您要导入项目的目标 JIRA 实例的版本(如 JIRA 6.2)相匹配。
  2. 执行从 JIRA Cloud 到临时 JIRA 实例的完整 JIRA 迁移。请参见从 JIRA Cloud 迁移到 Server 应用
  3. 从临时 JIRA 实例导出所需项目。
  4. 按照下面还原项目部分的说明,将项目导入目标 JIRA 实例。 
  5. (可选)完成项目导入后,删除临时 JIRA 实例。

还原项目

Project Import 工具会尝试将备份文件中的数据映射到目标 JIRA 实例中。如果目标 JIRA 实例中不存在您要还原的项目,系统会创建项目并将备份中的数据输入其中。如果项目已存在且为空,系统会尝试将备份中的数据输入项目中。

为什么要在目标 JIRA 实例中创建空项目?

必须注意的是,Project Import 工具的主要任务是将数据从备份项目还原到目标 JIRA 实例。虽然 Project Import 工具可以在目标 JIRA 实例中不存在项目时创建项目,但它不会重新创建任何会影响数据的配置设置(如屏幕模型)。如果您希望保留原始项目中的任何配置设置,我们建议您先使用必要的配置设置在目标实例中创建一个空项目,然后再从备份项目将数据导入其中。

您可能需要执行以下设置任务,以确保目标 JIRA 实例已准备就绪,可以接收项目导入。这样可以减少与目标 JIRA 实例的数据映射验证所需的时间。

如果您确信自己的 JIRA 实例已设置妥当,可以直接跳到 Project Import 工具说明。如果从备份文件到目标 JIRA 实例映射数据时出现问题,Project Import 工具将显示验证错误,以便您解决。

准备目标 JIRA 实例

Project Import 工具不会自动添加缺失的项目实体(如用户群组、事务优先级、自定义字段类型),也不会修正错误的关系(如工作流模型中的事务类型),因此您需要手动执行一些操作来设置目标 JIRA 实例,以便还原项目。如果 Project Import 向导无法为备份项目数据找到有效的目标位置,就无法还原项目。下面的说明介绍了一些设置活动,可以解决从备份还原项目时出现的最常见的数据映射问题。

我们建议您先对目标 JIRA 实例执行尽可能多的配置,然后再开始导入项目。但是,如果您事先不具备完成这些设置活动所需的信息,Project Import 向导将会提醒您需要注意的问题。或者,您也可以将备份文件导入测试 JIRA 实例以检查配置。

1. 设置项目

如果您希望还原数据的目标 JIRA 实例中包含一个项目,就需要确保该项目为空,也就是

  • 没有事务 — 执行搜索,查找项目中的所有事务 
  • 没有组件 — 请阅读组件管理页,了解查看项目组件描述的方法
  • 没有版本 — 请阅读版本管理页,了解查看项目版本描述的方法

2.设置用户和群组

对于要导入的项目来说,以下类型的用户是必不可少的:

  • 报告人、经办人、组件负责人或项目负责人。

对于要导入的项目来说,以下类型的用户是可选的:

  • 评论作者/编辑、工作日志作者/编辑、自定义字段中的用户(用户选择器)、投票人、关注者、变更群组作者(即变更了某个事务的人)、附件作者、项目角色中的用户。

Project Import 工具会尝试创建与项目相关的缺失用户。但是,如果 Project Import 工具无法在目标 JIRA 实例中创建缺失但又必不可少的用户,就不会允许您导入项目。如果您在目标 JIRA 实例中启用了 External User Management,就可能发生这种情况。此时,您需要先禁用 External User Management 或在外部用户存储库中手动创建缺失用户,然后再开始导入。

请注意,对于备份文件中的用户,如果您不具备足够的信息,Project Import 向导会在一个新页面中提供一个链接,指向一个包含缺失用户的表格,以及另外一个链接,指向一个列出了缺失用户的 XML 文件。用户表格最多可显示 100 个用户,但 XML 文件里的信息始终是完整的。

3. 设置自定义字段

如前所述,对于要导入的项目,备份和目标 JIRA 实例的自定义字段插件的版本必须相匹配。您需要确保目标 JIRA 实例中的自定义字段设置正确,如下所示:

  • 自定义字段类型 — 如果目标 JIRA 中未安装特定的自定义字段类型(如级联选择),系统就不会还原备份项目中使用该自定义字段类型的所有自定义字段数据。但是,项目还是会还原。
    比如说,您有一个自定义字段“Title”,该字段的类型为“Cascading Select”且已在备份项目中使用(也就是说,这个字段存在已保存的数据)。如果您的目标 JIRA 上未安装“Cascading Select”自定义字段类型,系统就不会还原自定义字段“Title”(以及所有其他级联选择自定义字段)的所有数据。
  • 自定义字段配置 — 如果目标 JIRA 中安装了特定的自定义字段类型(如多选),您就必须在目标 JIRA 中配置该自定义类型的所有自定义字段,以便与备份项目中的对等自定义字段相匹配。此外,如果自定义字段有可选选项,则备份项目中使用的所有选项(也就是说,对于这些选项存在已保存的数据)也必须作为选项在目标 JIRA 的自定义字段中存在。
    比如说,您的备份项目中包含名为“Preferred Contact Method”的自定义多选字段,其中包含“Phone”、“Email”、“Fax”选项,而备份项目实际上只使用了“Phone”和“Email”选项。在这种情况下,您需要按以下方式设置目标 JIRA 实例:
    • 目标 JIRA 实例中必须存在名为“Preferred Contact Method”的字段。
    • “Preferred Contact Method”必须为多选自定义字段类型。
    • “Preferred Contact Method”必须至少拥有“Phone”和“Email”选项,因为备份项目中使用了这两个选项。请注意,目标 JIRA 中的“Preferred Contact Method”还可以拥有“Fax”、“Post”、“Mobile”等其他选项(如果您选择)。
      如果您未正确配置现有的自定义字段,系统将不允许您导入备份项目,直到您更正目标 JIRA 中的配置错误。
      请参见添加自定义字段,了解有关自定义字段类型和自定义字段配置的更多信息。
  • 与 Project Import 工具的兼容性 — 自定义字段还必须与导入自定义字段数据所使用的 Project Import 工具兼容。用低于 v4.0 版本的 JIRA 创建的自定义字段无法通过 Project Import 工具导入。自定义字段开发人员需要另行变更代码,Project Import 工具才能还原自定义字段数据。如果备份文件中使用的任何自定义字段与 Project Import 工具不兼容,Project Import 向导会提醒您,也不会导入相关的自定义字段数据。所有目标 JIRA 系统自定义字段和 Atlassian 支持的 JIRA 插件(如 JIRA Toolkit、Charting Plugin、Labels Plugin、Perforce Plugin)中包含的自定义字段都与 Project Import 工具兼容。

4. 设置工作流、系统字段、群组和角色

除了自定义字段以外,您还需要在目标 JIRA 实例中正确配置项目工作流、事务属性(如事务类型)及群组/角色,以便成功还原项目。请确保您已经浏览了以下各项的限制:

工作流和工作流模型:

  • 项目导入过程不会导入工作流或工作流模型。如果您希望保留备份中的自定义工作流,就需要在目标 JIRA 实例中创建一个新的工作流,并按照旧工作流手动编辑这个新工作流(如创建步骤和转换)(注意,默认的 JIRA 工作流不可编辑)。然后,将此工作流添加到工作流模型中以将其激活。
  • 在导入项目时,系统会针对每个事务触发 Create Issue 转换和 Issue Created 事件,以及所有相应的 后期功能。如果您在导入之后变更 Create Issue 转换(例如,设置其中一个“Create Issue”字段值),就可能会获得与源中不同的值。作为解决方法,您可以在导入期间手动禁用后期功能。
  • 阅读使用工作流管理工作流文档,了解有关创建和编辑工作流的更多消息。请注意,即使您不希望重新创建完全相同的工作流,也可能需要创建和编辑新的工作流和工作流模型,以满足备份中工作流实体的约束条件,如下所述。

请勿将导出和导入工作流 XML 定义的 JIRA 功能用于将备份工作流复制到目标 JIRA 实例。工作流导入/导出工具的工作内容不包括工作流屏幕。因此,您就需要在导入后手动编辑工作流定义以将新屏幕与工作流相匹配,这很不划算。

事务类型:

  • 如果备份项目中已经使用了某种事务类型(也就是说,存在这种类型的事务),您就必须在目标 JIRA 项目中设置同样的事务类型。您可能需要考虑为项目设置事务类型,而不是全局设置。
  • 工作流模型 — 如果已经在备份项目中将某种事务类型与特定工作流模型相关联,就必须确保目标 JIRA 中存在同样的关联。请参见上面的“工作流和工作流模型”部分,进一步了解如何在目标 JIRA 实例中设置工作流的信息。
  • 自定义字段配置模型 — 自定义字段配置模型可用来将自定义字段配置应用于特定事务类型。如果您为备份项目中的不同事务类型分别配置了自定义字段,可能会希望设置自定义字段配置模型,以便将相同的自定义字段配置应用于目标 JIRA 实例中相同的事务类型。如上面的“设置自定义字段”部分所述,这将有助于确保您没有将自定义字段用于配置错误的事务类型(例如,多选选项字段缺失了一个选项)。

状态:

  • 如果备份项目中已经使用了某种事务状态(也就是说,存在具备这种状态的事务),您就必须在目标 JIRA 项目中设置同样的状态。
  • 工作流模型 — 如果已经在备份项目中将某种状态与特定工作流模型相关联,就必须确保目标 JIRA 中存在同样的关联。请参见上面的“工作流和工作流模型”部分,进一步了解如何在目标 JIRA 实例中设置工作流的信息。

在检查工作流时,请确保匹配 Linked Status 名称而不是 Step Name

安全级别:

  • 如果备份项目中已经使用了某种事务安全级别(也就是说,存在具备这种安全级别的事务),就必须在目标 JIRA 实例中进行同样的设置。如果您没有创建现有的空项目,那么我们建议您这样做,并为该项目设置适当的安全级别(通过事务安全模型)。
  • 事务安全模型 — 不适用。只要存在适当的安全级别,那么哪些用户、群组或项目角色被指派到哪种安全级别就无关紧要(请参见“设置实体和类型”部分中的安全级别限制)。

优先级:

  • 如果备份项目中已经使用了某种事务优先级(也就是说,存在具备这种优先级的事务),就必须在目标 JIRA 实例中进行同样的设置。

决议:

  • 如果备份项目中已经使用了某种事务决议(也就是说,存在具备这种决议的事务),就必须在目标 JIRA 实例中进行同样的设置。

事务链接类型:

  • 如果备份项目中已经使用了某种事务链接类型(也就是说,存在被这种链接类型关联的事务),就必须在目标 JIRA 实例中进行同样的设置。

项目角色:

  • 如果备份项目中已经使用了某种项目角色(也就是说,存在被指派给这种项目角色的用户/群组),就必须在目标 JIRA 实例中进行同样的设置。
    (注意:如果您选择,Project Import 工具会将项目角色成员资格直接从备份项目复制到目标 JIRA 实例。请参见“项目导入”部分进一步了解详细信息)。

群组:

  • 如果备份项目中已经使用了某种用户群组(也就是说,这种群组中存在用户),就必须在目标 JIRA 实例中进行同样的设置。

关于模型的注释
尽管如上所述,项目导入过程可能会影响与模型相关联的实体和类型,但不会直接影响模型。请注意,项目导入过程完全不会影响以下模型:

  • 权限模型 — 不适用。权限模型不需要在备份和目标 JIRA 实例之间保持一致。
  • 通知模型 — 不适用。通知模型不需要在备份和目标 JIRA 实例之间保持一致。
  • 屏幕模型 — 不适用。屏幕模型不需要在备份和目标 JIRA 实例之间保持一致。
  • 事务类型屏幕模型 — 不适用。事务类型屏幕模型不需要在备份和目标 JIRA 实例之间保持一致。
  • 字段配置模型 — 不适用。请注意,如果某个字段在备份项目中被配置为可选字段,但在目标 JIRA 实例中却被配置为必填字段,那么项目仍会导入,即使该字段为空。但是,下次用户编辑包含此字段的事务时,系统会将此字段强制设为必填项。

5. 设置链接

Project Import 工具在导入过程中会保留备份项目中的现有事务键值,还会自动创建备份项目中各事务之间的所有事务链接。它还会尝试在备份项目和其他项目之间创建链接,只要该项目已经存在于目标 JIRA 实例中,并且包含具有相应键值的事务。如果找不到链接的源/目标(也就是说,整个项目或特定事务可能缺失),就不会创建链接,而项目仍然会导入。

请注意,Project Import 工具会在项目之间创建任意方向(源到目标或目标到源)的事务链接。这意味着如果从同一备份文件导入两个项目,那么第二个项目导入会创建第一个项目导入中缺少的两个项目之间的所有链接。

在完成了尽可能多的设置任务后,运行 Project Import 工具

项目导入

还原项目过程包含四个步骤:

  1. 指定备份文件
  2. 选择项目
  3. 查看数据映射验证
  4. 验证还原的项目

如果启动 Project Import 工具,我们强烈建议您先完成向导中的所有步骤,然后再在 JIRA 中执行任何其他活动。请注意,验证数据映射需要一些时间,然后才会导入项目。

您很可能需要按照 Project Import 向导中的验证错误所建议,离开向导去更正 JIRA 配置。如果您必须导航到 JIRA 的其他页面以更正 JIRA 配置或进行其他活动,应当:

  • (建议)在新的浏览器窗口/标签中打开单独的 JIRA 会话。返回至原来的浏览器窗口/标签中的 Project Import 向导时,您可以使用验证屏幕上的“Refresh validations”按钮重新验证数据映射;或者
  • 等待进度条完成目前所执行的步骤,然后再导航到 JIRA 中的其他位置。Project Import 向导的状态会被保存,直到您退出 JIRA、您的用户会话过期或开始导入其他项目。您可以通过返回 Project Import 页面(通过主“Administration”菜单)并在向导的首页上选择“恢复”链接来恢复项目导入。

1. 指定备份文件

要启动 Project Import 工具,请执行以下操作:


  1. 选择   > System。 
  2. 选择 Import & Export > Project Import 打开 Project Import 向导页面。
  3. 在“File name”字段中指定备份文件的路径和名称。您的备份文件必须是 XML 或 ZIP 文件(由 JIRA 导出)。
  4. 将您用来备份附件的路径中的附件复制到导入窗口中显示的“Backup Attachment Path”中。此路径位于实例的 JIRA 主目录下。请注意,如果未在目标 JIRA 实例中启用文件附件,就看不到需要将备份中的附件复制到的目标路径。
    注意:您可以选择不将附件复制到“Backup Attachment Path”。如果是这样,您将能够从备份中还原项目,但项目不会包含与其相关联的附件。请注意,如果在项目导入期间没有将附件还原,则无法单独还原附件,因为附件的数据库条目将会丢失。

2. 选择要还原的项目

  1. “Projects from Backup”下拉列表中选择要还原的项目。此下拉列表将列出备份文件中包含的所有项目。
  2. 如果您要从备份中还原的是一个有效项目,并且目标 JIRA 实例中包含现有的空项目,系统就会显示“Overwrite Project Details”选项。如果要使用备份中的项目详情覆盖现有空项目的项目详情,请选择“Overwrite Project Details”选项。项目详情包括项目的名称、URL、项目负责人、默认经办人和描述,以及项目中设置的所有项目角色成员。如果目标 JIRA 实例中不存在现有空项目,系统就会检查并禁用此选项,因为 Project Import 将使用备份文件中的项目详情创建项目。

3. 审查数据映射验证

  1. Project Import 向导将尝试验证数据映射,以便能够从备份文件导入项目。您可以在向导的这个步骤审查验证,并根据需求修改目标 JIRA 实例。
    • 对号标记 () 表示映射这些实体时没有出现问题。
    • 感叹号标记 () 表示数据映射出现问题,您应该在导入项目之前进行查看,但项目仍然能够导入。例如,存在缺失的可选用户,而 Project Import 工具无法自动创建该用户。
    • 叉号标记 () 表示数据映射出现问题,您必须解决这些问题才能导入项目。例如,目标 JIRA 实例中缺少备份项目中使用的事务类型。
  2. 本页中的“准备您的目标 JIRA 实例”部分列出了常见的数据映射错误。
  3. 根据需要解决数据验证错误后,单击“Import”,开始从备份文件导入数据。

Project Import 工具将在实际的数据导入期间(而不是验证期间)锁定您的 JIRA 实例,因此,请确保不需要在此期间访问您的实例。

4. 验证还原的项目

  1. Project Import 工具完成运行后,单击“OK”导航至已还原的项目。您应该验证这些事务、组件和版本是否已正确还原。您还应该检查所有自定义字段数据和链接是否已正确还原。
  2. 请检查附件是否已从附件备份目录中正确还原。

Project Import 工具将在每个导入事务的变更记录中添加一个条目,表明事务的导入时间。请注意,对于变更记录中事务导入以前的旧条目,系统会仅作为历史记录保留。旧条目可能会包含不一致的数据,这是因为旧的和新的 JIRA 系统的配置可能不同。

如果出了问题该怎么办?

  • 如果项目导入未完成,您可以参考 JIRA 日志文件。Project Import 工具会将详细的操作信息记录到该文件中,包括所有意外错误和异常,例如数据库锁定、磁盘已满,等等。
  • 如果项目导入已完成,但没有按计划还原项目,您可能需要尝试在目标 JIRA 实例中手动解决问题。您可能还需要试着将项目从目标 JIRA 实例中删除,然后从备份中重新导入,期间要特别注意警告验证(例如,不会自动添加的用户)。

如果您无法自行解决问题,可以联系我们以寻求帮助。请参见下面的“需要帮助”部分以了解详情。

需要帮助?

需要进一步帮助?您可以前往 https://support.atlassian.com,在 JIRA 项目中提出支持请求,向我们的支持团队寻求帮助。请在支持案例中提供以下信息:

  • 您尝试从中导入项目的备份文件,以及
  • 目标 JIRA 实例的以下信息:
    • 日志文件
    • 目标 JIRA 实例的 XML 备份
    • 复制并粘贴 System Info 页面(通过 Administration 选项卡访问)的全部内容,以便我们了解您的 JIRA 配置的详情。

如果您的数据包含敏感信息,可以对 XML 备份进行匿名处理

  • No labels