2017-01-19 8 views
0

У меня есть проект базы данных VS2015 (sqlproj), и я создал множество тестовых данных. Я добавил параметр в файл PostDeploymentScript.sql, и когда мне нужна пустая база данных, я устанавливаю его как ложь, и когда я публикую ее, она не включает тестовые данные. Когда мне нужна демонстрационная база данных, я устанавливаю ее как истину, и когда я публикую ее, она также добавляет тестовые данные после развертывания.2 Отдельные файлы DACPAC для тестирования и производства

С другой стороны, я хочу создать два разных файла DACPAC для предотвращения ручного процесса и автоматического создания обоих из них автоматически. Я немного искал и нашел несколько статей вроде этого: http://www.techrepublic.com/blog/data-center/auto-deploy-and-version-your-sql-server-database-with-ssdt/ но я не мог применить то, что он сказал. Что мне не хватает?

Я создал (почти) пустой проект базы данных (скажем, Base.sqlproj), который добавляет данные таблицы поиска после развертывания. Я создал другой проект DB (Base_Plus_TestData.sqlproj) и добавил ссылку базы данных для первой базы данных.

Что мне нужно, если клиенту необходимо развернуть пустую базу данных, я бы хотел дать им Base.DACPAC. Если клиенту необходимо развернуть демонстрационную базу данных с тестовыми данными, я хочу дать им Base_Plus_TestData.DACPAC.

Что мне делать для этой цели и что я делаю неправильно?

+1

Эй Джек, несколько простых вопросов - когда у вас есть демо-дб схема точно такие же, только дополнительные данные? Также есть ли у вас данные для развертывания в обеих базах данных? Наконец, это вы или клиенты, которые управляют им и как часто? –

+0

@EdElliott Схема полностью такая же. Оба имеют одинаковые общие данные поиска, но демо-версия DB также содержит некоторые мнимые данные о клиентах и ​​продажах. Скажем, мое имя продукта - HappyCRM, мне бы хотелось создать либо эту БД, либо другую, как HappyCRM not Base и Base_Plus_TestData –

ответ

1

Там несколько дополнительных опций более, что вы уже делаете с помощью переключателя, чтобы включить данные, я бы выбрал первый :)

1 - Просто дать клиентам, которые хотят демонстрационные данные скрипт для запуска после развертывания базы данных (вы можете сделать что-то вроде использования сценария powershell/.net для развертывания ваших данных и, при необходимости, данных)

2 - Сценарий пост-развертывания можно редактировать в dacpac, вы можете создать свой проект, скопировать dacpac и затем отредактируйте скрипт post deploy, чтобы включить ваши данные в один из dacpac.

3 - Создайте отдельный проект ssdt, который ссылается на ваш основной проект базы данных с помощью ссылки «той же базы данных» и дополнительного сценария развертывания post. Если вы создадите, вы получите два dacpacs, которые вы можете развернуть вместе, если вам нужны данные или просто базы данных.

Если у вас также есть данные в вашем оригинальном dacpac для развертывания, вам нужно будет скопировать его в «с данными» dacpac.

Ed

+0

Я думаю, что вариант Ed дал # 1, скорее всего, ваш лучший вариант. Храните сценарий отдельно для заполнения демо-данных. Назовите его, когда это необходимо. Вы можете сделать все остальное, но если схема идентична, создание отдельного проекта кажется излишним. Ввод его в пост-развертывание раздувает сценарий развертывания совсем немного без необходимости. –

+0

@EdElliott, Мой вопрос заключается не в том, как доставить тестовые данные клиентам, как сделать свой третий вариант. Я уже оценил первые два варианта, но мое желание - предоставить моим клиентам два файла dacpac. Все остальные параметры требуют двух или более шагов или ручных процессов. С другой стороны, с двумя разными файлами dacpac они будут использовать либо этот dacpac, либо другой. Для третьего варианта я уже добавил новый проект, добавил ссылку на db, выбрал одну и ту же базу данных и создал два файла dacpac, но проблема в том, что новый файл dacpac (с тестовыми данными) не работает должным образом. Я что-то неправильно понял? –

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