配置迁移工具
适用于: Project Server 2010
上一次修改主题: 2015-03-09
本文提供有关如何配置迁移工具用于将 Microsoft Office Project Server 2003 数据迁移到 Microsoft Office Project Server 2007 的初始化 .ini 文件的信息。本文还提供了多个 SQL 查询,可通过这些查询搜索 Project Server 2003 数据库中处于特定状态的项目,以将这些项目包含在迁移配置文件中。
本文内容:
迁移配置文件概述
迁移配置参数
迁移配置文件示例
查询 Project Server 2003 数据库中的项目
迁移配置文件概述
通常,使用类似于下面的命令行调用迁移工具:
D:\Program Files\Microsoft Office\OFFICE12>P12MigrationTool.exe -c d:\migration\ProjectServer2007Migrate.ini
在运行迁移工具前,您必须在文本编辑器中手动编辑迁移配置文件。此文件可配置某些参数,这些参数可指定升级日志文件的位置、要迁移的项目、运行 Microsoft SQL Server(其中将包含 Office Project Server 2007 数据库)的计算机的位置等。
迁移配置文件示例(名为 ProjectServer2007Migrate.ini.sample)与迁移工具安装在同一目录中。您可以使用正确的配置参数更新此文件示例,然后在运行迁移工具时指向此文件。该文件示例包括介绍可用于每个参数的配置选项的注释。
下面几部分提供了有关迁移配置文件的更多详细信息。
迁移配置参数
以下是可在迁移配置文件中配置的参数。
| 参数 | 说明 |
|---|---|
[General] |
常规配置节。下面列出了该节的相关参数。 |
BatchName= |
您可以多次运行迁移工具(例如,分批迁移项目)。因此,可为迁移工具的每次运行指定一个唯一名称。会根据指定的 BatchName 参数对每次运行迁移工具时所生成的日志文件进行命名。如果未指定唯一名称,则生成的日志文件将覆盖以前的日志文件。 |
LogFileNamePrefix= |
标识迁移日志文件的前缀。日志文件名是 LogFileNamePrefix 和指定何时开始迁移的时间戳的组合。例如,如果有一个名为 batch1-20060314-1542.log 的日志文件:
在多次进行迁移时(如采用逐步迁移方法),将前缀应用于日志文件名非常有用。 |
LogFilePath= |
标识由迁移工具生成的日志文件的路径。迁移工具会将冗余信息写入日志文件。日志文件是有关迁移工具的故障排除信息的主要来源。如果迁移工具无法写入日志文件,它将停止运行,从而可确保您始终能够参考日志文件,以获取有关迁移运行的详细信息。 |
MigrateAll= |
Save:Project Server 2003 中的所有项目都将迁移到 Office Project Server 2007,但不会发布其中任何一个。 Publish:Project Server 2003 中的所有项目都将迁移到 Office Project Server 2007,并且 Project Server 2003 中的已发布项目在 Office Project Server 2007 中将自动处于已发布状态。 如果您希望忽略 MigrateAll 参数,请使用分号在 备注 如果在迁移任何项目前,您选择按照运行迁移工具的最佳实践来迁移非项目数据(企业全局模板、企业资源和 Project Web Access 数据),请在 MigrateAll 参数之前添加注释标记。您还必须确保未在 [Project Names to Save and Publish] 和 [Project Names to Publish] 节中指定任何项目。 重要 如果在 [Project Names to Save and Publish] 或 [Project Names to Publish] 节中指定了任何项目名称,则 MigrateAll= 设置将被忽略。 |
FixUpSecurityCategories= |
如果将 FixUpSecurityCategories 设置为 Yes,则在迁移项目后会自动将这些项目添加到安全类别。如果将其设置为 No,则在迁移后不会将这些项目添加到任何安全类别。通常情况下,如果 Office Project Server 2007 中的类别将与您在 Project Server 2003 中所具有的类别显著不同,并且您希望将项目手动添加到安全类别,则应将此策略设置为 No。 |
StopProjectMigrationIfStatusUpdatesPending= |
默认情况下,StopProjectMigrationIfStatusUpdatesPending 的值为 Yes。如果将该值设置为 Yes,则不会迁移包含挂起更新的任何项目。如果将此设置设为 No,则会迁移包含挂起更新的所有项目。在即使项目包含挂起更新,但客户仍希望迁移这些项目时,No 选项非常有用。例如,当需要迁移旧项目,但没有项目经理来为这些项目处理挂起更新时就是这样一种情况。 |
NeverPublishMasterProjects= |
默认情况下,会将 NeverPublishMasterProjects 的值设置为 Yes。此设置可确保不会误发布主项目。对于已在 Project Server 2003 中设置了“从不发布主项目”选项的客户来说,此设置非常有用。 如果您希望在迁移后发布任何主项目,请将 NeverPublishMasterProjects 设置为 No。即使您指定了此设置,也需要将主项目手动包含在 [Project Names to Save and Publish] 节中。 备注 在 Office Project Server 2007 中发布主项目不会加倍计算可用性。 |
[Project Names to Save] |
键入要在迁移后保存的项目的名称。不会发布在此节中指定的项目。 备注 您必须指定完整的名称(如 MSP_PROJECTS 表的 PROJ_NAME 列中存储的名称)。 |
[Project Names to Save and Publish] |
键入要在迁移后保存和发布的项目的名称。 备注 只能将 Project Server 2003 中的已发布项目(扩展名为 .PUBLISHED)发布到 Office Project Server 2007。如果您指定了已进行版本管理的项目,则只会保存该项目,而不会发布它。 备注 您必须指定项目的完整名称(如 MSP_PROJECTS 表的 PROJ_NAME 列中存储的名称)。 备注 如果您指定了一个主项目并设置了 neverPublishMasterProjects=false,则还会自动发布子项目(如果已迁移这些项目或将其作为此迁移运行的一部分进行迁移)。另请注意,在 Project Server 2010 中发布主项目不会加倍计算可用性。 |
[Excluded Project Names] |
指定要在迁移过程中明确排除的任何项目。当希望迁移大多数项目(而非所有项目)时,此选项通常可与 MigrateAll 设置一起使用。 备注 您必须指定项目的完整名称(如 MSP_PROJECTS 表的 PROJ_NAME 列中存储的名称)。 |
[Project Server 2007] |
Office Project Server 2007 配置节。下面列出了该节的相关参数。 |
Project2007PWAServer= |
键入 Microsoft Project Web App URL。例如,Project2007PWAServer=http://Project2007PWAServer/pwa |
Project2007SQLServer= |
键入承载 Office Project Server 2007 数据库的 SQL Server 实例的名称。 重要 默认情况下,Project Server 2003 数据库还应为与 Office Project Server 2007 相同的 SQL Server 实例的一部分。为此,请将 Project Server 2003 数据库备份和还原到承载 Office Project Server 2007 数据库的 SQL Server 实例中。如果对您来说,这样做有困难,请参阅 [Project Server 2003] 节中的 Project2003LinkedSQLServer 属性。 |
DraftDB = |
键入 Office Project Server 2007 草稿数据库的名称。 |
PublishedDB = |
键入 Office Project Server 2007 已发布数据库的名称。 |
[Project Server 2003] |
Project Server 2003 配置节。下面列出了该节的相关参数。 |
Project2003ProjectTablesDB = |
如果对 Project Server 2003 数据库使用单个数据库配置(与拆分数据库配置不同),请在此配置设置以及随后出现的 Project2003WebTablesDB= 设置中键入数据库的名称。 备注 迁移工具不迁移 SQL Server Analysis Services 多维数据集表。您必须在迁移后重新构建多维数据集。 |
Project2003WebTablesDB= |
如果 Project Server 2003 数据位于拆分数据库配置中,请键入 Web 表数据库的名称。如上所述,如果 Project Server 2003 位于单个数据库配置中,请在此处和 Project2003ProjectTablesDB= 设置中输入数据库名称。 |
Project2003LinkedSQLServer=SQLServerName |
默认情况下不会启用此设置(已对 Project2003LinkedSQLServer= 设置添加注释标记)。如果未指定此参数,则迁移工具会假定 Project 2003 数据库位于承载 Office Project Server 2007 SQL Server 的计算机中。如果 Project 2003 数据库所在的 SQL Server 计算机无法驻留在承载 Office Project Server 2007 数据库的计算机上,那么您可以使用此设置来指定 Project Server 2003 数据库所在的计算机。但是,要执行此操作,您必须将 Project Server 2003 数据库作为链接服务器添加到 Office Project Server 2007 SQL Server。若要配置 SQL 链接服务器连接,请参阅介绍迁移前任务的文章在 SQL Server 中配置链接服务器。 |
迁移配置文件示例
下面是一个已配置迁移配置文件的示例。
[General]
LogFilePath=C:\ProjectServer2007Migration
LogFileNamePrefix=Batch1
MigrateAll=Publish
FixUpSecurityCategories=yes
StopProjectMigrationIfStatusUpdatesPending=yes
NeverPublishMasterProjects=yes
[Project Names to Save]
Project1.published
Project2.Target
[Project Names to Save and Publish]
Project3.Published
Project4.Published
[Excluded Project Names]
Project5.Published
Project6.Target
[Project Server 2007]
Project2007PWAServer=http://Project2007pwaserver/pwa
Project2007SQLServer=Project2007sqlserver
DraftDB=Project2007ProjectServerDraft
PublishedDB=Project2007ProjectServerPublished
[Project Server 2003]
Project2003ProjectTablesDB=Project2003ProjDB
Project2003WebTablesDB=Project2003WebDB
;Project2003LinkedSQLServer=LinkedSQLServerName
备注
随迁移工具安装的迁移配置文件包含介绍可用配置选项的注释。这些注释可帮助您正确配置该文件。配置该文件后,您可以将这些注释留在文件中。
查询 Project Server 2003 数据库中的项目
此节中显示的 SQL Server 脚本在搜索 Project Server 2003 数据库中的项目时非常有用,这些项目需要包含在迁移配置文件的以下任一节中:
[Project Names to Save]
[Project Names to Save and Publish]
[Excluded Project Names]
然后,可在需要时将查询生成的项目名称复制到迁移配置文件的相应节中。
尚未启动的项目
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p
INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)
WHERE p.PROJ_TYPE = 0 AND t.TASK_PCT_COMP = 0 AND t.TASK_PCT_WORK_COMP = 0
已完成的项目
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p
INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)
WHERE p.PROJ_TYPE = 0 AND t.TASK_PCT_COMP = 100 AND t.TASK_PCT_WORK_COMP = 100
尚未完成的项目
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p
INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)
WHERE p.PROJ_TYPE = 0 AND (t.TASK_PCT_COMP != 100 OR t.TASK_PCT_WORK_COMP != 100)
正在进行的项目
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p
INNER JOIN dbo.MSP_TASKS t ON (t.PROJ_ID = p.PROJ_ID AND t.TASK_UID = 0)
WHERE p.PROJ_TYPE = 0 AND (t.TASK_PCT_COMP > 0 OR (t.TASK_STOP_DATE > t.TASK_START_DATE AND t.TASK_DUR > 0))
其项目大纲代码“Project Status”等于“Opportunity”的项目
对于下面的查询,请使用用于此示例的“Project Status”和“Opportunity”值替换要查询的大纲代码和值。
SELECT p1.PROJ_NAME
FROM dbo.MSP_FIELD_ATTRIBUTES fa
INNER JOIN dbo.MSP_ATTRIBUTE_STRINGS ats ON (fa.PROJ_ID = ats.PROJ_ID AND fa.AS_ID = ats.AS_ID AND fa.ATTRIB_ID = 206)
INNER JOIN dbo.MSP_PROJECTS p ON (p.PROJ_ID = fa.PROJ_ID AND p.PROJ_TYPE = 2)
INNER JOIN dbo.MSP_OUTLINE_CODES oc ON (p.PROJ_ID = oc.PROJ_ID AND oc.OC_FIELD_ID = fa.ATTRIB_FIELD_ID)
INNER JOIN dbo.MSP_CODE_FIELDS cf ON (cf.CODE_FIELD_ID = oc.OC_FIELD_ID AND cf.CODE_UID = oc.CODE_UID)
INNER JOIN dbo.MSP_PROJECTS p1 ON (p1.PROJ_ID = cf.PROJ_ID)
WHERE ats.AS_VALUE like '%Project Status%' AND oc.OC_CACHED_FULL_NAME like 'Opportunity'
项目模板
SELECT p.PROJ_NAME FROM dbo.MSP_PROJECTS p WHERE PROJ_TYPE = 1