На работе мы используем Oracle и C#/ASP.net для управления веб-сайтом клиента. Этот сайт очень масштабный, поэтому база данныхоченьбольшой.
Мы используем Perforce для контроля версий и привязываем скрипты создания или замены к случаям FogBugz всякий раз, когда изменяется база данных, что было нормально до сих пор, так как сейчас мы находимся в точке, где пять разработчиков работают над пятью расширениями для системы, каждое в отдельной ветке Perforce. К сожалению, мы не можем получить дубликаты баз данных из-за размера базы данных, поэтому все по-прежнему работают с одной и той же. Это, очевидно, является причиной проблем: всего десять минут назад у нас была небольшая проблема, когда изменение хранимой процедуры для ветки распространилось на сервер Pre-Production и вызвало большое количество сбоев для тестировщиков. В идеале мы хотели бы иметь способ отслеживать эти изменения без необходимости вручную отслеживать их через FogBugz.
Мой вопрос: как вы справляетесь с этой ситуацией? Я уверен, что сейчас должен быть хороший способ управления версиями или, по крайней мере, отслеживания изменений в базе данных Oracle.
решение1
В версии 11gR2 введена концепция редактирования кода, если обновление базы данных возможно.
Ваша схема данных совпадает со схемой кода? Разделить их может быть хорошей идеей. Таким образом, вы можете иметь тот же набор таблиц базы данных, но разные наборы схем кода. Тогда один проект может использовать одну схему кода, а другой может использовать вторую схему.
Пока вы привязаны к одному набору данных, у вас будут ограничения. Если один проект ожидает значение из одного символа, а другой расширяет его до двух символов, вы можете ожидать проблем.