Під час важких розробок схема бази даних змінюється як швидко, так і постійно, і до того моменту, коли відбувається тижневий поштовх до бета-версії, схема настільки змінилася, що єдиним розумним варіантом є занурення всіх таблиць, які я можу і скопіюйте нові версії з моєї бази даних розробників. Очевидно, що після запуску це не спрацює, оскільки виведення даних про виробництво є рецептом катастрофи, тому мені було цікаво, які існують стратегії управління змінами схеми бази даних від однієї версії / редакції до іншої?
Деякі я знайшов або пережив:
- Прямий нук-енд-дамп із однієї бази даних в іншу (що я зараз роблю)
- Підтримка файлу UPDATE.sql з операторами SQL, які запускаються або через скрипт, або вручну.
- Підтримка файлу update.php з відповідним значенням "db-схема-версія" в активній базі даних
Третій варіант видається найбільш розумним, але все ще існує можливість погано побудованого SQL-запиту не виконати середину скрипту, залишаючи базу даних у напів оновленому стані, що потребує відновлення резервної копії.
Здається, це не проблема, але це трапляється, оскільки ми, як команда, використовуємо phpMyAdmin, і я, здається, навіть не покладаюся на себе, пам'ятаю, скопіювавши виконаний SQL-оператор, щоб вставити його у файл update.php. Як тільки ви перейдете на іншу сторінку, я повинен переписати оператор SQL вручну або скасувати зміни та зробити це знову.
Я думаю, що я сподіваюся, що це рішення, яке не вплине на наш усталений робочий процес розвитку?
update.php
абоupdate.sql
файл у тестовому середовищі, перш ніж застосовувати його до активної бази даних, правда? І PHPMyAdmin звинувачують у можливих проблемах, таких як сценарій, можливо, саме час заглянути в інший / кращий інструмент?