他の誰かが以下に説明されているものと同様の問題に遭遇しましたか?
Powershell を使用して SQL Server 2012 dacpac データベース アップグレードを展開する際に問題が発生しています。詳細は次のとおりです。
SQL Server 2012用に構築されたdacpacファイルであり、管理者としてログインしたときにコマンドラインからPowershellを実行して、SQL Server 2012データベースに適用しようとしています。
"4" 個の引数を指定して "Deploy" を呼び出し中に例外が発生しました: "ドメインの ID を特定できません"。At ... so.ps1:17 char:8 + $d.Deploy($dp, $TargetDatabase,$true,$DeployOptions)
編集されたスクリプト (ログとリテラルが変更されています) は次のとおりです。
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Microsoft.SqlServer.Dac.dll") | Out-Null
$d = new-object Microsoft.SqlServer.Dac.DacServices ("... Connection string ...")
$TargetDatabase = "databasename"
$fullDacPacPath = "c:\temp\...\databasename.dacpac"
# Load dacpac from file & deploy to database named pubsnew
$dp = [Microsoft.SqlServer.Dac.DacPackage]::Load($fullDacPacPath)
$DeployOptions = new-object Microsoft.SqlServer.Dac.DacDeployOptions
$DeployOptions.IncludeCompositeObjects = $true
$DeployOptions.IgnoreFileSize = $false
$DeployOptions.IgnoreFilegroupPlacement = $false
$DeployOptions.IgnoreFileAndLogFilePath = $false
$DeployOptions.AllowIncompatiblePlatform = $true
$d.Deploy($dp, $TargetDatabase,$true,$DeployOptions)
ここにいくつかのサポート情報があります:
- Dac フレームワークのバージョンは 11.1 です
- コマンドラインで実行すると、スクリプトはエラーをスローします
。Powershell -file databaseupgrade.ps1
ですが、Powershell 統合スクリプト環境で実行した場合はそうではありません - 同様のスクリプトは、他の dacpac のコマンド ラインから機能します。
Web での調査によると、dacpac のサイズに関係している可能性があります。機能するものはすべて、機能しないものよりも小さく、このリンクには、失敗した dacpac のファイル サイズが 1.3 MB を超える数値が記載されています。これが問題であることを誰かが確認できる場合は、解決策も提案できますか?
更新 次のスクリプトは同じ動作を示します。コマンドラインからではなくPS Ideで動作します。
[Reflection.Assembly]::LoadWithPartialName("System.IO.IsolatedStorage")
$f = [System.IO.IsolatedStorage.IsolatedStorageFile]::GetMachineStoreForDomain();
Write-Host($f.AvailableFreeSpace);