Подтвердить что ты не робот

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

Я работаю разработчиком scm, и в настоящее время мне поручена деятельность, которая включает в себя управление версиями базы данных. Хотя я и сделал управление исходным кодом, я совершенно новичок в этом. Поэтому я хотел бы иметь разные мнения и опыт о том, как реализовать это.

То, что я имею в виду по версии базы данных (oracle/sybase), заключается в том, чтобы фиксировать изменения, которые происходят с схемой/триггерами базы данных /etc, и хранить их как ревизии. В основном в нашей компании есть некоторые изменения в клиентских базах данных, о которых мы не знаем или, по крайней мере, не можем определить, когда и кто внес определенные изменения. Мы просто пытаемся создать запись об изменениях, которые происходят в БД.

Примечание. Я не парень БД.

4b9b3361

Ответ 1

Обычная практика заключается в том, чтобы позволить изменениям проходить процесс сборки. В основном.. есть средство управления версиями, такое как CVS, где пользователи проверяют изменения, которые необходимо выполнить в средах QA и Prod.

Итак, скажем, есть несколько столбцов, добавленных в таблицу, разработчик проверит в .ddl script команду "Alter table..." и будет "применен" к в следующий раз, когда вы выполните сборку.

Если вы не ограничиваете пользователей (в данном случае.. Разработчиков) от непосредственного внесения изменений и вместо этого используете стандартный процесс сборки, отслеживание изменений объектов практически невозможно с течением времени.

Рассмотрите необходимые детали, такие как пользователь, внесший изменения, время изменения, причина (комментарии для проверки, номер ошибки, новый запрос функции и т.д.), которые вам понадобятся позже, чтобы понять, почему было сделано изменение. Все изменения обычно скомпилируются с использованием стандартного пользователя, такого как "APPOWNER", и в отсутствие системы управления версиями у вас есть только доступ к последнему изменению (last_ddl_change).

Если вы хотите отслеживать изменения в Data, вы можете использовать триггеры или использовать приложение, такое как Golden Gate, которое будет считывать журналы повтора и получать записи об изменениях. Из вашего вопроса, похоже, вы ищете способ отслеживания изменений объектов.

Ответ 2

Лучший способ сделать это - иметь какое-то программное обеспечение для редактирования db, которое управляет всеми изменениями и позволяет легко применять его к нескольким базам данных (вверх/вниз).

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

Возможно, похожие инструменты для PostgreSQL помогут: