Почему контроль версий базы данных не считается таким же важным, как контроль версий приложений? - PullRequest
6 голосов
/ 22 июля 2011

Я недавно начал использовать Kiln Source Control для всех моих проектов VB.NET-кода, и я не знаю, как мне обойтись без него!

Я искал источник управления базами данных,для всех моих хранимых процедур, пользовательских функций и т. д. Однако я обнаружил, что для управления версиями базы данных доступно не так много, как для моих веб-файлов.

Почему управление версиями базы данных не считается таким важным, какмои веб-файлы?Разумеется, все программирование в моей базе данных так же важно, как и код в моем программном коде и файлах .aspx?

Ответы [ 7 ]

6 голосов
/ 22 июля 2011

Управление версиями объектов базы данных важно!

Однако, может быть, это не считается важным, потому что некоторые люди видят базу данных просто как инструмент, который помогает им?А внешние инструменты (как правило) не контролируются версиями.

Одна вещь, с которой я столкнулся с трудностями в управлении, - это процесс выпуска.Прямо сейчас мы используем систему контроля доступа красных ворот, подключенную к SVN.Когда приходит время выпуска, мы делаем то же самое, что и с остальным кодом: объединяемся из одной ветви в другую.Затем, чтобы развернуть его, мы используем sql сравни, чтобы создать скрипт diff между объединенной ревизией и реальной базой данных.Помимо некоторых мелких измышлений и ошибок новичков, я думаю, что это хорошо работает в среде, где нет простоев (целенаправленно;)) и в которой высокоскоростной процесс разработки (множество выпусков).

1 голос
/ 09 мая 2012

Вот реальность.

Управление версиями базы данных - то есть DDL, DML и даже данные для необходимых справочных данных, необходимых для приложения, чтобы иметь базовые функциональные возможности - так же важно, как и все другие ресурсы приложения под управлением версиями. Базы данных никогда не должны находиться под каким-либо особым исключением, если считается, что их активы (объекты и необходимые справочные данные) не находятся под контролем версий. Всегда .

Так почему они были? Просто. Наборы инструментов для упрощения управления этими активами не всегда работали безрезультатно (в случае с SQL Server до Visual Studio 2008 он не поставлялся с инструментами сторонних производителей от Microsoft), а наборы инструментов различались у разных поставщиков. от поставщика. Когда эти наборы инструментов являются недостаточными, если организация не предпримет шаги для покрытия этого недостатка, этот недостаток остается. Это технический долг, и некоторые организации не расставляют приоритеты из-за времени или (к сожалению) умений, когда инструменты, облегчающие его, не существуют или требуют интеграции сторонних инструментов в рабочий процесс разработки.

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

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

1 голос
/ 22 июля 2011

Вы можете легко подключить SQL Server к Kiln с помощью SQL Source Control - http://www.red -gate.com / products / sql-development / sql-source-control /

1 голос
/ 22 июля 2011

Полагаю, это зависит от того, управляете ли вы изменениями базы данных (такими как изменения схемы, миграции, как указано в wRAR) как часть хранилища исходного кода, в форме сценариев sql или других форматов с использованием других инструментов, или вы рассматриваете это как администрирование базы данных, и делаете это, используя традиционные методы резервного копирования / восстановления.

По моему опыту, хотя я не считаю управление базой данных менее важным, оно происходит с очень низкой частотой по сравнению с реальными изменениями кода. Ваш случай явно отличается, но комбинация файлов сценариев и инструментов базы данных должна позаботиться об этом.

1 голос
/ 22 июля 2011

VCS предназначены для хранения версий текста. Они могут хранить двоичные файлы, но это менее эффективно. И само состояние БД не является текстом и даже не может быть напрямую сохранено как двоичный файл. Вы можете сохранить код SQL, хотя.

одно решение - хранить полный дамп БД (SQL или двоичный), другое - хранить последовательности сценариев SQL, которые меняют одно состояние БД на другое. Второй подход может быть автоматизирован в некоторых средах и называется миграцией. если вам нужна отдельная конкретная VCS для БД, вы можете подумать, что инструменты миграции являются такими VCS.

Существуют также инструменты, которые могут сравнивать два состояния БД и создавать diff, способный изменить первое состояние на второе.

1 голос
/ 22 июля 2011

Я не знаю, если или почему это не считается важным, но вот ссылка на что-то, что может помочь:

http://code.google.com/p/migratordotnet/

1 голос
/ 22 июля 2011

Вы можете поддерживать артефакты базы данных в вашей системе контроля версий для того же. Система контроля версий предназначена для управления версиями артефактов, а артефактами могут быть программный код или база данных. Мы использовали тот же VC для кода и базы данных.

...