Wicked
Новичок
Контроль версий для схемы базы данных
Над проектом трудятся 4 человека. У каждого по своей SVN-песочнице, и по своей базе данных. Структура базы данных, естественно, периодически меняется. Из чего возможны проблемы в стиле возникают такие проблемы:
1) хочется, чтобы для любого ревижна мы могли узнать схему базы данных, действующую на тот момент.
Я так понимаю, с этим можно совладать, введя sql-файлик, содержащий структуру бд под контроль свн. Другого хорошего выхода, наверное, нету. Соответственно, если так сделать, начинает хотеться еще вот чего:
2) чтобы после каждого SVN-апдейта была кэшируемая проверка базы данных. Я себе вижу это так:
1. После апдейта при обращении к сайту, каким-нибудь пхп-скриптом сверяется текущий ревижн этого sql-файла с закэшированным.
1.1. Если они разные, то скрипт выдёргивает структуру базы данных, и сопоставляет с sql-файлом.
1.1.1. Если они совпадают, то последний ревижн помещается в кэш, и при следющем запуске тестов/скрипта проверка закончится на пункте 1.1.
1.1.2. Если они не совпадают, скрипт не дает сайту работать, обязывая изменить текущую структуру базы данных в соответствии с текущим ревижном. Руками, естественно.
1.2. Если они однакоковые, то сайт работает дальше.
3) чтобы перед каждым SVN-коммитом текущая структура бд помещалась в тот sql-файлик и тоже коммитилась.
Как это сделать ума не приложу
Может кто знает, как подобное делается наилучшим образом... если вообще делается?
PS: Под структурой частично подразумеваются и некоторые данные: например, список ключей из таблицы CONFIG.
Над проектом трудятся 4 человека. У каждого по своей SVN-песочнице, и по своей базе данных. Структура базы данных, естественно, периодически меняется. Из чего возможны проблемы в стиле возникают такие проблемы:
1) хочется, чтобы для любого ревижна мы могли узнать схему базы данных, действующую на тот момент.
Я так понимаю, с этим можно совладать, введя sql-файлик, содержащий структуру бд под контроль свн. Другого хорошего выхода, наверное, нету. Соответственно, если так сделать, начинает хотеться еще вот чего:
2) чтобы после каждого SVN-апдейта была кэшируемая проверка базы данных. Я себе вижу это так:
1. После апдейта при обращении к сайту, каким-нибудь пхп-скриптом сверяется текущий ревижн этого sql-файла с закэшированным.
1.1. Если они разные, то скрипт выдёргивает структуру базы данных, и сопоставляет с sql-файлом.
1.1.1. Если они совпадают, то последний ревижн помещается в кэш, и при следющем запуске тестов/скрипта проверка закончится на пункте 1.1.
1.1.2. Если они не совпадают, скрипт не дает сайту работать, обязывая изменить текущую структуру базы данных в соответствии с текущим ревижном. Руками, естественно.
1.2. Если они однакоковые, то сайт работает дальше.
3) чтобы перед каждым SVN-коммитом текущая структура бд помещалась в тот sql-файлик и тоже коммитилась.
Как это сделать ума не приложу

Может кто знает, как подобное делается наилучшим образом... если вообще делается?
PS: Под структурой частично подразумеваются и некоторые данные: например, список ключей из таблицы CONFIG.