kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TFS 2008(/w SQL Server 2005)からTFS 2012にアップグレードできない(結果)

TFS2012へのアップグレード処理中にTF400744エラーが出る | Microsoft Connect
原因ですが、SQL Serverの問題…ではなく、TFSのアップグレードチェックがちょっと良くなかったみたいですね。今回はこんな構成でアップグレードを行おうとしていました。
(移行元)

(移行先)

TFS 2008からTFS 2012のアップグレードはサポートされていますが、SQL Server 2012はSQL Server 2005で使用される互換レベル90のデータベースをサポートしていません。
Deprecated Database Engine Features in SQL Server 2012
評価していないということではなくて、今回の失敗をみるとほんとに使えないというレベルでダメみたいですね。なので、回避策としてはどれかになります。

  • Windows Server 2012でSQL Server 2008 R2 SP1を使う
  • アップグレード前にSQL Server 2005からSQL Server 2008にアップグレードして互換レベルを100に変更する。
  • SQL Server 2012でALTER DATABASEを実行して互換レベルを100以上にする。

ALTER DATABASE Compatibility Level (Transact-SQL)
いずれにしても、SQL Server側の問題ではなく、TFSのアップグレード処理の問題じゃないかな、と思います。せめて前提チェックで報告してほしいですね。
(11/20追記)
サポートによると、互換レベルの問題ではないそうです。SQL Server側らしいのですが、TFS側でこの現象が起きないようなクエリ発行に変えるそうです。遠くない将来公開されるTFS 2012 Update1でこの問題に対応する、という回答をいただきました。
(11/28追記)
TFS 2012 Update1を使用してアップグレードしたところ、期待通りTFS 2008からのアップグレードができました。SQL Server 2012 SP1でも修正されていない問題ですが、TFS側で回避したとのことです。