2016-07-08 59 views
0

我需要發送電子郵件我們的數據庫管理員部署時,利用基於EF6代碼的遷移,熄滅。我能夠通過powershell使用具有verbose標誌的migrate.exe工具來獲取腳本,但每個命令在10222個字符後都會被截斷。這通常隻影響migrationHistory的模型哈希。有誰知道的方式,通過PowerShell來生成EF6遷移完整的SQL腳本如何使用EF代碼第一次遷移從powershell生成腳本

感謝 牛逼

回答

0

想通了,migrate.exe被包裹toolingfacade類,所以我創建傳遞所需的變量作爲對象以及設置verbosedelegate。關於這一點的好處是,如果我只想獲取sql腳本,我可以運行更新腳本功能

[Reflection.Assembly]::LoadFrom("EntityFramework.dll") | Out-Null 
$con = New-Object -TypeName System.Data.Entity.Infrastructure.DbConnectionInfo -ArgumentList @("constring", "System.Data.SqlClient") 
$tools = New-Object -TypeName System.Data.Entity.Migrations.Design.ToolingFacade -ArgumentList @("dbcondllname", "dbcondllname",$null,"workingdr",$null,$null,$con) 
$tools.LogVerboseDelegate = {param($sql) 
    Write-Verbose $sql -verbose #dumps the sql to RM log 
} 
$tools.Update($null,$false)