長い時間の読者、初めての質問者!DACPACの非SQLポストデプロイメントスクリプト
私は、データベースコード用のDACPACを新しい "開発者向け"の世界に展開しているので、これまでの問題を頭に入れていました。これはMSIの作成内で行うことができるはずですが、私は面白いことに、その機能を追加していないので、私はDACPACに残しています。
SQL以外のpost/pre配置スクリプトを実行する方法を知っている人はいませんか?理想的にはPowerShellですが、最初はフォルダ構造を作成していくつかのファイルを移動するだけです。
セキュリティ上の理由から、xp_cmdshellは問題になりません。
私は、配備後に自動的にpowershellを実行して自己を削除するSQLエージェントジョブを作成することを考えましたが、ロビー活動のルートを辿るのはむずかしいようです。
アドバイスをいただければ幸いです。
EDIT:SQLCMDモードをサポート
:!! [コマンド]
例えば
:!!ます。mkdir C:\テスト
残念ながら、Visual Studioは、そのバック製図板にSQLCMDのそのレベルをサポートしていません。
ちょっと返答に感謝を編、およびはい、完全に同意する、私はPowerShellの男だから理想的な方法は、特別なスクリプトを追加してPSを展開することです。残念ながら私は非常に大規模な組織で働いています。コンサルタントが過払いのコンサルタントがいくつかのデベロッパーの話題を投げかけており、彼らはそれを許さないルートを下っています(彼らはMSIでそれらを包んでいます)。私は2週間前に私の告知を渡しました。そのようなもののために私はイライラしています。私はちょうど何よりもポイントを証明するための解決策を考え出しています:)私は今、それを投稿します。 – Ollie
私の修正プログラムはVisual Studioでは動作しません。SQLCMDモードのドキュメントが見つかりました。コマンドを実行するには:!! mkdir C:\ Testただし、Visual StudioはすべてのSQLCMD機能をサポートしていません。将来も! – Ollie
msi'sの場合、完了後に実行するアクションを追加できませんか? MSIにはMoveFileActionがあります。あなたがコードを書くことができれば、実際の醜い/ハッキーを得ることができます。ビルドエグゼキュータ、.net dllは、デプロイスクリプトが実行されたときに呼び出されるsqlpackageに関連した特定の場所に配置する必要があります。デプロイの実行前、実行中、実行後に実行できます。正直言って、数週間であなたが離れると、私はそれぞれのアプローチと利点を文書化して、次の人が議論/泣かせるために残しておきます:)とにかく彼らはそれを変えるように聞こえます –