Створюйте сценарії під контролем версій та постійною інтеграцією для їх перевірки
Один із підходів, який працював для мене, полягав у тому, щоб кожен розробник працював зі своєю схемою, з якою він може робити те, що їм подобається. Їх схема була руйнівною та заповнена тестовими даними, взятими з набору контрольованих версій сценаріїв, до яких сприяли всі розробники.
Нічне безперервне інтегрування збирало найновішу версію всіх сценаріїв і намагалося створити з них згуртовану базу даних. Потім у програмі було проведено ряд інтеграційних та функціональних тестів, щоб перевірити, чи відповідає поточна схема поточному кандидату на випуск.
Перш ніж починати цю дорогу, була створена досить солідна розробка баз даних, і DBA завжди слідкував за речами, щоб не допустити розробників з глузду від денормалізації та інших жахів.
Тут надзвичайно допоміг контроль над версіями, оскільки зміни в скриптах були відразу очевидні. Ми також використали базу данихVERSION
таблицю щоб визначити загальний стан бази даних. Це була проста ціла послідовність і не була пов'язана з будь-яким конкретним додатком.
Загалом, це спрацювало добре і означало, що розробники перестали побоюватися зміни рівня наполегливості, оскільки вони завжди могли відмовити власні схеми, не впливаючи на інших.