2013-12-11 36 views
8

私はVisual Studio 2012 hereにSSDTを使用し、コマンドラインツールSQLPackage.exeを使用して.dacpacファイルを公開しています。SSDTのSQLPackage.exeを使用してDACPACファイルをSQL Serverデータベースプロジェクトに公開する方法?

SQL Server database projectに公開したいと思います。私はこのguideでパラメータを使用しようとしていますが、それを行う方法を見つけることができません。

どうすればいいですか?

+1

例から供給されます。http://stackoverflow.com/questions/8371879/deploy-sql-server-2012-db-project-via -command-line-sql-server-data-tools-ctp4/8376809#8376809 – Keith

答えて

9

データベースに公開しようとしているのですか、またはdacpacからデータベースプロジェクトを作成しようとしていますか?これらは2つの異なるものです。

  • dacpacに基づいてデータベースプロジェクトを作成するには、Visual Studioで新しいSQL Serverデータベースプロジェクトを作成します。次に、ソリューションエクスプローラでプロジェクトを右クリックし、「インポート - >データ層アプリケーション(* .dacpac)」を選択し、dacpacを選択します。これにより、dacpacの内容がプロジェクトのスクリプトに変換され、「データベース設定のインポート」を選択すると、データベースオプションはdacpacの設定に基づいて設定されます。残念ながら私が知っているコマンドラインツールでこれを行う方法はありません。

  • SqlPackage.exeを使用してデータベースに公開するには、リンク先のガイドにすべてのオプションがあります。 dacpac "db1"をデータベース "localhost \ db1"に公開するには、 "sqlpackage/a:publish /sf:db1.dacpac/tsn: localhost/tdn:db1"という簡単なコマンドを使用します。他の発行オプションについては、「sqlpackage/a:publish /?」と入力します。コマンドラインで適用可能なアクションのリストを取得します。

+0

外部データベースのスキーマをデータベースプロジェクトに更新したい –

1

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 
関連する問題