Как загрузить тестовые данные из Excel в проект базы данных VS2010

Я использую проект базы данных VS2010 и хочу иметь возможность загружать:

  • Ссылочные данные в любой экземпляр (изолированная разработка, тестирование, ... производство)

  • Тестовые данные только в базы данных разработки и тестирования.

Я так понимаю, эталонные данные не проблема, я использую скрипты в скрипт после развертывания, который будет выполняться безоговорочно.

Насколько я понимаю, для тестовых данных следует использовать план генерации данных; и что я могу использовать генератор привязки данных для загрузки данных из источника данных, такого как Access, Excel или текстовый файл. MSDN предлагает пошаговое руководство по созданию тестовых данных из электронной таблицы Excel, которое в на первый взгляд выглядит так, как мне нужно, но для ссылки на файл Excel используется абсолютный путь. Что, по-видимому, несовместимо с наличием проекта базы данных в системе управления версиями, к которому обращаются разные пользователи, чьи рабочие области могут находиться в разных местах.

Какова «лучшая практика» загрузки тестовых данных в этой ситуации? Могу ли я использовать относительный путь в строке подключения и быть уверенным, что он всегда будет интерпретироваться одинаково на всех компьютерах разработчиков?

Я ожидал найти что-то вроде синтаксиса |DataDirectory| строка подстановки, позволяющая указать путь относительно каталога проекта базы данных.


person Joe    schedule 12.12.2011    source источник


Ответы (2)


Используйте Excelreader для загрузки данных Excel в набор данных по следующей ссылке http://exceldatareader.codeplex.com/.

person Lemu    schedule 13.12.2011
comment
Я не понимаю, как ваш ответ относится к вопросу. - person Joe; 13.12.2011

При дальнейшем чтении я думаю, что план генерации данных — неправильный инструмент для этого сценария.

Что я делаю сейчас, так это создаю сценарий после развертывания с тестовыми данными, а затем убеждаюсь, что он выполняется условно, используя переменные команды SQL. Каждая цель развертывания (изолированная разработка; UAT; PROD) может иметь свой собственный файл командных переменных SQL (.sqlcmdvars), который будет контролировать выполнение сценария.

Например. чтобы загрузить тестовые данные только для базы данных IsolatedDev, я могу использовать следующее в сценарии после развертывания:

IF '$(DatabaseName)' = 'IsolatedDev'
BEGIN
    ... insert statements to add test data
END

и убедитесь, что тестовые данные не будут случайно загружены в производственную базу данных.

Пожалуйста, не стесняйтесь поделиться своим опытом и лучшими практиками.

person Joe    schedule 13.12.2011