Как автоматизировать процесс обновления структуры БД на проектах?

Groove

Новичок
Как автоматизировать процесс обновления структуры БД на проектах?

Есть ситуация: свой движок, на котором уже несколько проектов работают, по мере добавления функционала изменяю структуру БД, добавляю новые таблицы, добавляю новые поля в существующие таблицы.
Каким образом можно контролировать и обновлять структуру БД для уже существующих проектов?

Видится это примерно так:
1) все обновления на сегодня пишутся в файл с именем "%Y-%m-%d.sql"
2) для каждого запущенного проекта пишется дата последнего апдейта структуры базы
3) останавливается проект
4) бэкапится БД
5) накатываются обновление БД старше записанного, потом обновляется дата последнего обновления
6) заливаются новые шаблоны и скрипты
7) запускается проект

но это как то на коленке все ...

кто как делает такие вещи?
сперва пробовал писать все "ALTER TABLE ..." в один файл, но потом не ясно, с какого места надо обновлять и что уже обновлено
 

Krishna

Продался Java
Если проектов достаточно много крутится и времени не жаль - можно сделать скрипт upgrade.php

Хранить в служебной табличке текующую версию движка и скрипт запускать upgrade.php после обновлении файлов движка. В upgrade.php будет прописано какие изменения нужно делать для перехода от каждой старой версии к текущей.
Он будет выполнять необходимые DDL запросы к базе и обновлять текущую версию в служебной таблице.
Так сделано в некоторых движках.
 

Groove

Новичок
Krishna
да в этом то проблемы нет, проблема именно в организации работ, когда серьезно начинаешь править/добавлять в структуру БД изменения, порой как то забываешь делать логи изменений в "%Y-%m-%d.sql"

думал может быть кто нибудь подскажет тулзу, которая бы фиксировала сама только DDL запросы.

Во! Кстати, именно это мне и надо! И причем складывала именно в файлы с такими именами.
 

Krishna

Продался Java
Тупо делай экспорт структуры базы в phpmyadmin до и после изменений, а потом diff и смотри что изменилось.
 

Groove

Новичок
Mr_Max
именно это и надо было!!!)))

Огроменное спасибо!!! Сударь, Вы спасли мне много времени!)
 
Сверху