Существует ли система контроля версий для изменения структуры базы данных? - PullRequest
117 голосов
/ 02 августа 2008

Я часто сталкиваюсь со следующей проблемой.

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

Итак, я нажимаю на работающую систему и получаю большую, очевидную ошибку, что NewColumnX, тьфу.

Независимо от того, что это не может быть наилучшей практикой в ​​этой ситуации, существует ли система контроля версий для баз данных? Я не забочусь о конкретной технологии базы данных. Я просто хочу знать, если таковой существует. Если это случится с MS SQL Server, тогда отлично.

Ответы [ 22 ]

8 голосов
/ 31 августа 2008

Сделайте ваши первоначальные операторы создания таблиц в контроллере версий, затем добавьте операторы alter table, но никогда не редактируйте файлы, просто добавляйте файлы с идеальным последовательным именем или даже как «набор изменений», чтобы вы могли найти все изменения конкретное развертывание.

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

7 голосов
/ 17 сентября 2008

PLSQL Developer, инструмент от All Arround Automations, имеет плагин для репозиториев, который работает нормально (но не очень) с Visual Source Safe.

Из Интернета:

Плагин управления версиями обеспечивает тесную интеграцию между IDE разработчика PL / SQL >> и любой системой управления версиями, которая поддерживает спецификацию интерфейса Microsoft SCC. >> Сюда входят наиболее популярные системы контроля версий, такие как Microsoft Visual SourceSafe, >> Merant PVCS и MKS Source Integrity.

http://www.allroundautomations.com/plsvcs.html

7 голосов
/ 15 сентября 2008

Я делал это время от времени - управлял (или пытался управлять) версиями схемы. Лучшие подходы зависят от инструментов, которые у вас есть. Если вы сможете приобрести инструмент Quest Software «Schema Manager», вы будете в хорошей форме. У Oracle есть собственный, более низкий инструмент, который также называется «Диспетчер схем» (много смущает?), Который я не рекомендую.

Без автоматического инструмента (см. Другие комментарии о Data Dude), вы будете напрямую использовать скрипты и файлы DDL. Выберите подход, задокументируйте его и строго следуйте ему. Мне нравится иметь возможность заново создавать базу данных в любой момент, поэтому я предпочитаю иметь полный экспорт DDL всей базы данных (если я администратор баз данных) или схемы разработчика (если я в продукте -развития).

7 голосов
/ 30 августа 2008

Я пишу свои сценарии выпуска БД параллельно с кодированием и храню сценарии выпуска в разделе, посвященном конкретному проекту, в SS. Если я внесу изменение в код, который требует изменения базы данных, я одновременно обновлю скрипт выпуска. Перед выпуском я запускаю скрипт выпуска на чистой базе данных разработчика (копируемую структуру с производства) и выполняю на нем окончательное тестирование.

7 голосов
/ 17 сентября 2008

ER Studio позволяет преобразовать схему базы данных в инструмент, а затем сравнить ее с действующими базами данных.

Пример: переверните свою схему разработки в ER Studio - сравните ее с производственной, и она перечислит все различия. Он может записывать изменения или просто автоматически их проталкивать.

Если у вас есть схема в ER Studio, вы можете либо сохранить сценарий создания, либо сохранить его как собственный двоичный файл и сохранить его в системе управления версиями. Если вы когда-нибудь захотите вернуться к прошлой версии схемы, просто проверьте ее и отправьте на свою платформу БД.

6 голосов
/ 02 августа 2008

Существует PHP5 "среда миграции базы данных", которая называется Ruckusing. Я не использовал его, но примеры показывают идею: если вы используете язык для создания базы данных по мере необходимости, вам нужно только отслеживать исходные файлы.

4 голосов
/ 22 декабря 2014

Вы можете использовать Microsoft SQL Server Data Tools в Visual Studio для генерации сценариев для объектов базы данных в рамках проекта SQL Server. Затем вы можете добавить сценарии в систему управления версиями, используя интеграцию системы управления версиями, встроенную в Visual Studio. Кроме того, проекты SQL Server позволяют проверять объекты базы данных с помощью компилятора и генерировать сценарии развертывания для обновления существующей базы данных или создания новой.

3 голосов
/ 10 января 2010

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

http://www.red -gate.com / Продукты / schema_compare_for_oracle / index.htm

3 голосов
/ 26 сентября 2008

Мы использовали MS Team System Database Edition с довольно хорошим успехом. Он более или менее плавно интегрируется с управлением версиями TFS и Visual Studio и позволяет легко управлять сохраненными процессами, представлениями и т. Д. Разрешение конфликтов может быть проблемой, но история версий завершена, как только это будет сделано. После этого миграция в QA и производство чрезвычайно просты.

Справедливо сказать, что это продукт версии 1.0, и не без проблем.

2 голосов
/ 01 сентября 2008

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

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