私は、SQL Server Enterprise Edition
機能(データ圧縮など)を使用するVSにSSDTプロジェクトをセットアップしました。localdbに対してSQL Serverのエンタープライズ機能を使用するSSDTプロジェクトを単体テストする方法を教えてください。
このプロジェクトをlocaldb
にデプロイして、CIデータベースにデプロイする前にデータベースに対してローカルでユニットテストを実行できるようにしたいと考えています。ただし、localdb
は、データ圧縮をサポートしていないSQL Server Express Edition
のインスタンスです。
私が展開しようとしたときに私が取得エラーは次のとおりです。
SQL72014の.Net SqlClientデータプロバイダ: オブジェクトのFooTable 'の圧縮を有効にすることはできません。 SQL Server Enterprise Editionのみが 圧縮をサポートします。
可能性の溶液#1:localdb
に展開するときに実行されていないPost Deploy Script
、にすべてのデータ圧縮SQLをシフト。これは、オプションがソース管理で非表示になり、スキーマ比較などで表示されないので理想的ではありません。
潜在的な解決策2:問題のSQLをSQLCMD Variable
に置き換えます。 $(WithPageCompression)
localdb
に展開すると空の値を持ち、実際のデータベースにデプロイすると値WITH (DATA_COMPRESSION = PAGE)
になります。これは上記の改善ですが、より多くのオプションがWITH
内に設定されるにつれて扱いにくくなります。
潜在的なソリューション#3:各開発者マシンにSQL Serverのローカルインスタンスをインストールします。 Developer Editionがその仕事をしてくれるように見えます(今は無料です)。これがベストソリューションかもしれないし、他のメリットがあるように見えますが、これを組織のインフラストラクチャにインストールし、構成し、維持するオーバーヘッドが原因です。
その他のオプションはありますか?
ありがとうございました
[SQL Server 2016 SP1のlocaldbは、このようなもののほとんどをサポートしています。](https://blogs.msdn.microsoft.com/sqlreleaseservices/sql-server-2016-service-pack-1-sp1-rele/) –
Aha。Visual StudioでSSDTバージョンをアップグレードすると、バンドルされたlocaldbが2014から2016にアップグレードされますか?または、Visual Studio 2017を待つ必要がありますか? – Taran
私は答えを提出しなかった理由がわかりません。 SSDTの次のリリース(Visual Studioではなく)を待たなければならないのか、スタンドアロンのSQL Server 2016 SP1 localdbをインストールして動作させることができるのかどうかはわかりません。 –