Управление скриптами базы данных в ваших решениях

Обычно я создаю папку решения в Visual Studio и помещаю в нее свои сценарии БД. Я всегда использую хотя бы такой набор скриптов:

  1. Капля модель
  2. Создать сценарий модели
  3. Функции пользователя
  4. Хранимые процедуры
  5. Статические данные (справочные таблицы)
  6. Тестовые данные (не развернуты)

Затем я просто объединяю их и запускаю против SQL Server, чтобы я мог воссоздать всю БД за один шаг (объединив эти сценарии в один и выполнив его).

Так или иначе. Я ни разу не использовал проекты:

  • Visual Studio или
  • Студия управления SQL

Я пробовал создать Проект базы данных SQL Server 2008 в Visual Studio 2010, но меня как-то не в состоянии удовлетворить все возможные настройки сервера (которые в любом случае я предпочитаю оставить по умолчанию, установленными на сервере). Поэтому я немного сбит с толку: Следует ли мне использовать этот шаблон проекта или просто делать то же самое, что и всегда?

Что вы используете и почему? Какие преимущества я могу получить, используя их?


person Robert Koritnik    schedule 19.10.2010    source источник


Ответы (2)


Если бы я был на вашем месте, я бы продолжал делать это так, как вы. На самом деле я знаю! Преимущества наличия фактических файлов .sql прямо там, в папке, которую вы можете использовать / редактировать / просматривать, на мой взгляд, намного лучше, чем преимущества, которые вы получаете при использовании проекта БД. DB Project использовался бы, если бы вы делали что-то вроде отчетов о хранилище, если бы вам нужно было общаться примерно с 8 базами данных и сравнивать их с 8 разными базами данных и сохранять наборы результатов и т.д ... Не поймите меня неправильно, есть преимущества базы данных Проекты, я просто не думаю, что они действительно сильно помогают, когда у вас есть такая простая установка, которая уже работает.

Преимущества SQL Server 2008 Проект базы данных в VS10:

  • Отсутствие необходимости переключаться назад и вперед с вашего текущего клиента, который вы используете для связи с вашим SQL-сервером.
  • Достойные инструменты сравнения данных и схемы.
  • Дает вам способ одним щелчком мыши реконструировать базу данных в систему управления версиями и поддерживать ее в актуальном состоянии.
  • Вы можете сравнивать проекты с физическими базами данных и наоборот. (Это позволяет легко поддерживать вашу базу данных в актуальном состоянии, независимо от того, где вы ее изменяете: в проекте базы данных файловой системы или в самой физической базе данных)
  • Если текущий инструмент, который вы используете, не адаптирован специально для SQL Server, то этот.
  • Чрезвычайно полезно, если вам нужно выполнять модульные тесты непосредственно в базе данных без использования абстракций.
person Jacob Nelson    schedule 19.10.2010
comment
Одна вещь, которой мне не хватает в моем дизайне, - это надежность. сценарий DROP иногда не может удалить базу данных, поэтому весь пакет сценариев не работает. Я полагаю, что эти проекты SQL Server более надежны и могут без проблем развертывать и повторно развертывать. Еще я заметил, что я получаю анализ кода с этими типами проектов, которые могут быть полезны. Может быть ... И к сведению: я на самом деле не делаю никаких отчетов по этому проекту БД ... Так что вы, возможно, тоже правы. - person Robert Koritnik; 19.10.2010
comment
Думаю, я пытался сказать, что если вам просто нужна база данных для работы, а не ядро ​​вашего приложения, я бы придерживался того, что вы делаете. Если база данных играет большую роль в вашем приложении, стоит изучить проекты баз данных. Не поймите меня неправильно. У проектов SQL Server много преимуществ, я думаю, вопрос стоит ли того для вашего проекта. - person Jacob Nelson; 19.10.2010
comment
Это нормально, Джейкоб. Не могли бы вы рассказать о некоторых преимуществах использования шаблонов проектов (в своем ответе), чтобы мне не пришлось искать / проверять / тестировать их самостоятельно и, вероятно, пропустить несколько, а также потратить на это слишком много времени? Я все равно добавлю +1 к вашему ответу, потому что вы уже предоставили ценную информацию. - person Robert Koritnik; 19.10.2010
comment
Отредактировал свой ответ. Ссылка на вопрос, который относится к вашему вопросу, получил оттуда некоторые из моих преимуществ (давно не использовал и сам нуждался в переподготовке). - person Jacob Nelson; 20.10.2010

Если вы ищете что-то менее сложное, вы можете попробовать SQL Source Control . Это даже не потребует от вас поддержки скриптов, поскольку это не для вас за кулисами. Однако он будет работать как решение для вас, только если вы используете TFS или SVN. А стоит 295 долларов ...

У него есть 28-дневный пробный период, поэтому, если вы будете счастливы опробовать его, мне будут интересны ваши отзывы.

person David Atkinson    schedule 19.10.2010
comment
Какие из моих методов вы считаете сложными? Тот, который я использую сейчас, довольно простой, шаблон проекта также требует написания скриптов. Этот инструмент позволяет вам проектировать БД в SQL Server Management Studio, и этот инструмент просто создает и сохраняет для вас сценарии. Это просто означает, что вам нужно использовать второй инструмент для БД. В моем случае я могу сделать и то, и другое в VS. - person Robert Koritnik; 20.10.2010
comment
Извините - мне было немного непонятно. Я имел в виду сложность проекта визуальной студии в целом в ответ на ваш комментарий о том, что он перегружен. Вы хорошо замечаете, что можете использовать свою методологию в VS, что, как я полагаю, важно для вас? Одним из преимуществ SQL Source Control является возможность синхронизации из папки сценариев с целевой базой данных. Интеграция VS - это то, что у нас есть в дорожной карте SQL Source Control, но не раньше следующего года. Большинство пользователей, с которыми мы общаемся, проводят большую часть своего времени при разработке баз данных в SSMS. - person David Atkinson; 20.10.2010