データベース展開の一部として DACPAC を使用しています。同じパッケージが dev/staging/prod 環境にデプロイされます。私たちができるようにしたいのは、たとえば、各環境で異なるユーザー ID を持つ管理者ユーザーなどのデータをデータベースにシードすることです。
DACPAC (またはその他) のパブリッシュ プロファイルに変数を配置できれば素晴らしいと思いますが、@@servername
. これを達成するためのより良い方法はありますか?
データベース展開の一部として DACPAC を使用しています。同じパッケージが dev/staging/prod 環境にデプロイされます。私たちができるようにしたいのは、たとえば、各環境で異なるユーザー ID を持つ管理者ユーザーなどのデータをデータベースにシードすることです。
DACPAC (またはその他) のパブリッシュ プロファイルに変数を配置できれば素晴らしいと思いますが、@@servername
. これを達成するためのより良い方法はありますか?
したがって、Visual Studio で SSDT を使用している場合、これは非常にクリーンです。
プロジェクト プロパティの [SQLCmd] タブに移動し、任意の変数を入力します。
次に、それらをスクリプトで使用します。
Visual Studio 内で発行すると、変数の値を指定したり、デフォルトをロードしたりできる優れた UI が表示されます (指定した場合)。
パブリッシュ プロファイルは、MSBuild プロジェクトの形式の単なる xml ファイルなので、おかしなことは何もありません。自動的にデプロイする場合は、使用している dacpac デプロイ ツールで変数のデフォルト値を指定できます。SSDT の一部である SqlPackage を使用します。コマンド ライン リファレンス
Powershell からの使用法:
& $sqlpackageexe /Action:Publish /SourceFile:$dacpac /Profile:$dacprofile /TargetConnectionString:$connstring /Variables:DbEnvironment=Development