我正在使用SSDT for Visual Studio 2012 here並使用其命令行工具SQLPackage.exe
來發布.dacpac文件。我想發佈到SQL Server database project
。我試圖在這個guide使用參數,但無法找到如何做到這一點。如何通過SSDT的SQLPackage.exe將DACPAC文件發佈到SQL Server數據庫項目?
我該怎麼做?
我正在使用SSDT for Visual Studio 2012 here並使用其命令行工具SQLPackage.exe
來發布.dacpac文件。我想發佈到SQL Server database project
。我試圖在這個guide使用參數,但無法找到如何做到這一點。如何通過SSDT的SQLPackage.exe將DACPAC文件發佈到SQL Server數據庫項目?
我該怎麼做?
您是試圖發佈到數據庫還是從dacpac創建數據庫項目?這是兩件不同的事情。
要創建基於dacpac的數據庫項目,請在Visual Studio中創建一個新的SQL Server數據庫項目。然後右鍵單擊解決方案資源管理器中的項目並選擇「導入 - >數據層應用程序(* .dacpac)」並選擇您的dacpac。這會將dacpac的內容轉換爲項目中的腳本,如果選擇「導入數據庫設置」,數據庫選項將根據dacpac中的設置進行設置。不幸的是,沒有辦法通過我知道的命令行工具來實現。
要使用SqlPackage.exe發佈到數據庫,您鏈接到的指南具有所有選項。一個簡單的命令是「sqlpackage/a:publish /sf:db1.dacpac/tsn:localhost/tdn:db1」將dacpac「db1」發佈到數據庫「localhost \ db1」。對於其他發佈選項,請鍵入「sqlpackage/a:publish /?」在命令行上獲取適用操作的列表。
我想將外部數據庫的模式更新到數據庫項目 –
使用Powershell,您可以將其部署到標準本地SQL實例或Azure SQL實例。連接字符串和其他性能將使用sqlpackage.exe的PublishProfile
$PublishPath = "Path for the log"
$dacpac = "dbname.dacpac"
$publishProfile = "dbname.xml" # Publish profile xml for Publishing the database project
# Generate Deploy Report
$DeployReport = ".\sqlpackage.exe /Action:DeployReport /Sourcefile:$dacpac /pr:'$publishProfile' /outputpath:$PublishPath"
Invoke-Expression $DeployReport
# Generate Script Report
$GenerateScript = ".\sqlpackage.exe /Action:Script /Sourcefile:$dacpac /pr:'$publishProfile' /outputpath:$PublishPath"
Invoke-Expression $GenerateScript
# Database Publish
$publish = ".\sqlpackage.exe /Action:Publish /Sourcefile:$dacpac /pr:'$publishProfile'"
Invoke-Expression $publish | Out-File $PublishPath
實例被饋送:http://stackoverflow.com/questions/8371879/deploy-sql-server-2012-db-project-via -command-line-sql-server-data-tools-ctp4/8376809#8376809 – Keith