2009-04-19 4 views
3

У меня есть локальный сервер, где я все свое тестирование и работаю. Как только я закончил, я просто загружу схему db вместе с соответствующим кодом. Однако проблема возникает, когда я вношу некоторые изменения в схему. Мне нужно вручную ввести запрос «alter table» на моем реальном сервере.Php Db synchronization

Есть ли способ получить инкрементные изменения, которые произошли в схеме db, чтобы я мог просто применить новые? Или мне нужно вручную отслеживать?

Если я использую mysqldump, то он создает схему окончательного db (не с таблицей alter и т. Д.).

спасибо.

ответ

0

MySQL Workbench позволяет экспортировать скрипты ALTER (File -> Export -> Forward Engineer SQL ALTER Script). Сначала вы должны импортировать существующую базу данных и применить к ней свои изменения. Коммерческая версия позволяет реконструировать базу данных в реальном времени, а сообщество - импортировать скрипт CREATE (это будет простой дамп существующей структуры). В качестве альтернативы вы можете переконфигурировать живую базу данных с помощью DBDesigner 4, сохранить все в конец файла модели XML-модели, но вы потеряете материал, такой как набор символов по умолчанию и т. Д.

2

Я сохраняю сценарии delta sql, которые идут на производственный сервер вместе с новым кодом. Я все скрипту, так что смена приложения с версии X на версию Y «автоматическая». Some people also have undo scripts в случае, если что-то пойдет не так.

1

Как насчет сохранения изменений, которые вы сделали в процессе разработки, проверить эти изменения как группу для жизни?