Это называется database (schema) migrations и в гугле легко находится десяток готовых решений, как тривиальных так и весьма навороченных.
И в них решены некоторые проблемы, с которыми вам вероятно придётся столкнуться при столь прямолинейном подходе.
совершенно верно. через минуту после того как вы совершите удаление («я его не буду удалять до тех пор, пока откат не потеряет смысла „) вам потребуется таки вернуть всё как было ибо найден страшный-страшный баг.
ваши действия? :-)
ну всё, фиаско :-)
моя антагонистическая точка зрения таки проиграла. в качестве утешительного приза: назовите плиз стоящую реализацию для осуществления миграций на mysql (и ms sql) ;-)
слишком рутинно и подвержено человеческим ошибкам, вон люди в первом комменте говорили о наличии клёвых инструментов, правда на коммент не ответили пока :-(
ps: как же мне дороги эти кружочки слева от постов, из-за которых мой ff просто по швам трещит при рендеринге страницы
Вместо подобных решений я использую проверку существования изменяемых/добавляемых полей в ALTER TABLE. Пример:
$db->sql_query(«select nocashe from `config`;») or $db->sql_query(«ALTER TABLE `config` ADD `nocashe` text NOT NULL;»);
Т.е. если поля «nocashe» в таблице «config» нет, оно будет добавлено.
С проверкой таблиц итак все давно известно: CREATE TABLE IF NOT EXISTS…
Для того, чтобы обновлять все устаревшие сайты, я использую один постепенно растущий скрипт, в который добавляю подобные команды по мере каких-либо изменений в БД. В итоге никакими средствами автоматизации пользоваться не приходится вообще.
как и svn up на боевой копии — хороший способ отстрелить себе ногу в случае неаккуратного использования.
пункт два по нумерации невыполним, когда над проектом работает несколько разработчиков, собьётся очерёдность. дифф понадёжнее.
Обновление сайта, обновление схемы БД (MySQL)