2016-11-18 10 views
2

У меня есть проект SSDT, настроенный в VS, который использует функции SQL Server Enterprise Edition (например, сжатие данных).Как я могу протестировать проект SSDT, который использует серверные функции SQL Server для localdb?

Я хотел бы иметь возможность развернуть этот проект до localdb, чтобы иметь возможность запускать отдельные тесты с локальной базой данных, прежде чем развертывать их в базе данных CI. Однако localdb является экземпляром SQL Server Express Edition, который не поддерживает сжатие данных.

Я получаю ошибку при попытке развернуть это:

SQL72014 .Net провайдер SqlClient данных: Невозможно включить сжатие для объекта «FooTable». Только SQL Server Enterprise Edition поддерживает сжатие .

Потенциальное решение # 1: Сдвиг все SQL сжатия данных в Post Deploy Script, которая не запускается при развертывании на localdb. Это не идеально, поскольку опция будет скрыта в управлении источником и не будет отображаться при сравнении схемы и т. Д.

Потенциальное решение # 2: Замените проблему SQL с помощью SQLCMD Variable, например. $(WithPageCompression), который будет иметь пустое значение при развертывании до localdb и значение WITH (DATA_COMPRESSION = PAGE) при развертывании в реальной базе данных. Это является улучшением вышеизложенного, но будет становиться все более громоздким, поскольку в пределах WITH установлено больше опций.

Потенциальное решение №3: Установите локальный экземпляр SQL Server на каждую машину для разработчиков. Похоже, что Developer Edition выполнит эту работу (и теперь свободен). Это похоже на то, что это может быть лучшим решением и принесет другие преимущества, но накладные расходы на установку, настройку и поддержание этого в инфраструктуре организации делают это болью.

Какие еще варианты у меня есть?

Благодаря

+2

[localdb в SQL Server 2016 SP1 теперь поддерживает большую часть этого материала.] (Https://blogs.msdn.microsoft.com/sqlreleaseservices/sql-server-2016-service-pack-1-sp1-released/) –

+0

Ага.Означает ли это, что если я обновляю версию SSDT в Visual Studio, он обновит локальный пакет с 2014 по 2016 год? Или мне придется ждать Visual Studio 2017? – Taran

+0

Я не знаю, почему я не ответил. я не уверен, что вам нужно будет дождаться следующей версии SSDT (не визуальной студии) или просто установить SQL Server 2016 SP1 localdb автономно и все будет работать. –

ответ

3

С release of SQL Server 2016 SP1 большинство функций доступно во всех выпусках. Есть некоторые ограничения с LocalDB из-за его дизайна (он даже более легкий, чем обычный Express Edition, и по этой причине не поддерживает FileGroups/FileStream), но стоит попробовать это.

Вы можете загрузить Express или LocalDB from here. LocalDB также доступен в SSDT 17.0 RC release. В настоящее время он находится в режиме выбора кандидата, поэтому мы пока не рекомендуем его для сценариев производства.

1

Вы не хотите, чтобы проверить что-либо «серьезные» против SQL Server Express. У меня нет времени участвовать в пламенной войне, но Express свободен по какой-то причине (см., Вы получаете то, за что платите ...). Так или иначе вы хотите протестировать версию SQL Server, которая соответствует вашей или вы потратите чрезмерное количество времени на обнаружение и устранение несовместимостей. Оборудование не обязательно должно соответствовать, но вы должны, насколько это возможно, соответствовать программному обеспечению между тестом и производством.

Почему вы не можете установить версию разработчика, где установлен Express?

+0

Яркий экземпляр, о котором я говорю, на самом деле является экземпляром «localdb» в комплекте с визуальной студией на каждой машине разработчиков. Я изучаю установку Developer Edition, установленную на каждом компьютере пользователя, но у организации, в которой я работаю, есть строгий процесс утверждения программного обеспечения, и это может быть болью. Также он поднимает барьеры для нового разработчика, который не идеален. Но вы правы, что все тесты (даже локально) должны выполняться против производственной среды. – Taran

 Смежные вопросы

  • Нет связанных вопросов^_^