移行ツールを構成する
適用先: Project Server 2010
トピックの最終更新日: 2015-03-09
ここでは、移行ツールで Microsoft Office Project Server 2003 のデータを Microsoft Office Project Server 2007 に移行する際に使用する初期化 (.ini) ファイルの構成方法について説明します。また、Project Server 2003 データベースを検索して、移行構成ファイルに含める特定の状態のプロジェクトを探すために使用する、いくつかの SQL クエリも紹介します。
この記事の内容
移行構成ファイルの概要
移行構成パラメーター
移行構成ファイルの例
Project Server 2003 データベースに対してプロジェクトをクエリする
移行構成ファイルの概要
通常は、次のようなコマンド ラインを使用して移行ツールを起動します。
D:\Program Files\Microsoft Office\OFFICE12>P12MigrationTool.exe -c d:\migration\ProjectServer2007Migrate.ini
移行ツールを実行する前に、テキスト エディターで移行構成ファイルを手動で編集する必要があります。このファイルは、アップグレード ログ ファイルの場所、移行するプロジェクト、Office Project Server 2007 データベースを置く Microsoft SQL Server を実行しているコンピューターの場所などを指定するパラメーターを構成します。
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 データベースは、SQL Server の Office Project Server 2007 と同じインスタンスに含める必要があります。そのためには、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 Tables データベースの名前を入力します。前述のように、Project Server 2003 が単一データベース構成の場合は、この設定と Project2003ProjectTablesDB= 設定にデータベース名を入力します。 |
Project2003LinkedSQLServer=SQLServerName |
既定では、この設定は無効 (Project2003LinkedSQLServer= 設定がコメント アウトされた状態) になっています。このパラメーターを指定しない場合、移行ツールは、Office Project Server 2007 の SQL Server をホストするコンピューターに Project 2003 データベースがあるものと見なします。Project 2003 データベースがある SQL Server コンピューターを、Office Project Server 2007 データベースをホストするコンピューター上に置けない場合は、この設定を指定して、Project Server 2003 データベースがあるコンピューターを指定できます。ただし、この設定が機能するには、Office Project Server 2007 の SQL Server へのリンク サーバーとして Project Server 2003 データベースを追加する必要があります。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