問題タブ [sqlpackage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
deployment - Sqlproj: コマンド ラインでデータベースをデプロイするソリューションはどれですか?
現在、Microsoft Web 配置テクノロジ (msbuild および msdeploy コマンド) を使用して Web サイトをサーバーに配置しています。Web サイトにはデータベースの配置が必要であり、両方が同じサーバーに配置されます。(コマンド ラインを使用して) データベース プロジェクトを展開するための最適なソリューションを探しています。データベース展開に関するすべてのテクノロジをよりよく理解したいと考えています。
ソリューションの内容(Visual Studio 2013):
- データベース プロジェクト (SQL Server 2008 用)、
- クラス ライブラリ (NHibernate を使用したデータ アクセス層)
- Web プロジェクト (ASP.NET MVC4)。
注: VS で継続的インテグレーション/配信ツールまたはパブリッシュ メソッドを自発的に使用しているわけではありません。このプロジェクトでの私の最初の目標は、msbuild / msdeploy がどのように機能するかを理解することでした...
必要なすべての手順を実行しているように見えるvsdbcmdコマンドを見ました...ただし、Visual Studio DLL/ファイルをリモートサーバーにインポートする必要があり、より良い方法がないかどうか疑問に思います...私も見ましたmsdeploy プロバイダーdbSqlPackage /dbDacFx で、しかし私が理解したことから、スキーマの変更を適用するために dacpac を使用しています。同様に、SqlPackage.exe も dacpac を使用しているようです。
dacpac を使用するのは良い考えに思えますが、次の質問で混乱しています。
- これは、データベースを初めて作成するときに別のプロセスが必要になるということですか? はいの場合、どのコマンドが最適ですか?
- sqlproj ファイルから dacpac を作成することはできますか? はいの場合、それを行う方法は?
コマンド ラインから、また経験やプロジェクトからデプロイする他の方法はありますか?この種のプロジェクトをデプロイする最良の方法は何でしたか?
どうもありがとう、
powershell - 別の実行可能ファイルを呼び出して出力をキャプチャする
SqlPackage.exe
データベースを更新するために実行しようとしている PowerShell スクリプトを使用しています。問題は、新しい CMD ウィンドウが生成され、出力を効果的にキャプチャできないことです。
これが私のスクリプトです:
どこでSqlPackage = "SQLPackage\SqlPackage.exe";
。
不思議なことに、Windows 2008 R2 Web サーバーでスクリプトを実行すると、出力が PowerShell 出力と一致します。私の Windows 7 マシンでは、新しい CMD ウィンドウが生成されます。
出力を常に PowerShell ウィンドウにルーティングするか、少なくとも別のファイルにパイプするにはどうすればよいですか?
編集
プロセスが完了するのを待つ完全なソリューション:
visual-studio-2013 - Visual Studio 2013 での DacPac の公開
Visual Studio 2013 に SSDT データベース プロジェクトがあります。これは、データベースの更新を他の環境のデータベースに公開するときに "回答シート" として使用されます。私は最近、Jamie Thompson の DacPac に関するブログ記事に出くわしました。そこで彼は、DacPac とは何か、およびその使用方法について優れた要約を書いています。
ここで、次のシナリオがあるとします。
- バージョン 1.0.33 である VS2013 の SSDT プロジェクト
- バージョン 1.0.32 である私の開発環境のデータベース
- バージョン 1.0.31 の S-test 環境のデータベース
Jamie によると、DacPac を使用してデータベースの変更を発行することはべき等です。つまり、箇条 1 の SSDT プロジェクトから箇条 3 のデータベースに DacPac を発行でき、バージョン 1.0.32 とDacPac にはDB スキーマ全体に関する情報が含まれているため(バージョン 1.0.32 で行われた変更も含まれているはずです)。
これは、DacPac の発行のしくみに関する正しい理解ですか?
powershell-2.0 - PowerShell コマンドが実行されていませんか?
次の PowerShell v2.0 スクリプトでは、コマンド & は実行されません。
コンソール出力には、次のように表示されます。
エラーもログも、SqlPackage.exe もありません。どうしたの?コマンド "& "$SqlPackageExe" /Action:Publish $SqlPackageParameters" が 1 回目と 2 回目 (データベースがデプロイされている) で動作し、その後動作を停止します。PowerShell セッションを閉じて新しい PowerShell セッションを開くと、コマンドが数回動作した後、動作を停止します。
ご協力ありがとうございました
sql-server - SqlPackage.exe と MsBuild SqlPublishTask の違い
さまざまな環境にデプロイできる出力 dacpac ファイルを生成しようとしています。これまでは、次のようなターゲット パブリッシュを使用して msbuild から直接デプロイしていました。
生成される出力スクリプトのサイズ (UpdateDatabase が true に設定されているため、参照用) は 2.5MB です。
私の新しいアプローチは、プロジェクトをビルドし、dacpac を保存してから、アクション「発行」で sqlpackage を使用してデプロイすることです。この新しいメソッドは、msbuild SqlPublishTask では報告されなかったいくつかの警告を報告しています。
参考までに、次のコマンドを実行しました。
出力スクリプトのサイズは 4.9MB になりました。
報告された特定の警告はここでは問題ではありません。問題はスクリプトが異なることです。私の質問は違いは何ですか?
さらに重要なことに、展開を行うための最良/最も安全な方法はどれですか?