Задать вопрос
Mekras
@Mekras
Веб-разработчик

Файл, являющийся отражением дампа БД MySQL?

Нашим программистам приходится часто сохранять в SVN снимки состояния различных сайтов, расположенных на нашем сервере (FreeBSD). Эти снимки должны включать в себя файлы сайта и дамп его БД (MySQL). Если с файлами всё более менее просто, то вот делать дампы — занятие слегка утомительное (из-за чего программисты часто про них забывают). И вот родилась такая глупая мысль: было бы здорово, если бы удалось разместить в домашней папке сайта (конечно же недоступной через веб) особый файл, при чтении которого возвращался бы текстовый дамп БД. Тогда бы программист, скачивая с сервера файлы сайта, получал бы и дамп.


Поиск в поисковиках готовых решений (например для создания файлов, при чтении которых вызывался бы скрипт) ничего не дал (может не так искал?). Следующая мысль — написать свой драйвер устройства, а в папки сайтов класть символическую ссылку на него. Но тут возникает трудность: БД на сервере много, как драйверу узнать, какую из них дампить? Записать в устройство имя БД перед чтением — не вариант, по понятным причинам. Делать своё устройство для каждой БД тоже не самое удобное решение.


Может у кого-то есть светлые мысли, как решить задачку?

Обновление. Видимо надо пояснить прямо тут. Это не производственная задача. Это скорее интерес — а можно ли сделать что-то подобное? Если получится — хорошо, удастся внедрить — ещё лучше. Поэтому альтернативы вроде «напиши скрипт, который будет делать это по крону», не интересны, т. к. слишком скучны.
  • Вопрос задан
  • 3039 просмотров
Подписаться 4 Оценить Комментировать
Ответ пользователя egorinsk К ответам на вопрос (6)
@egorinsk
Внимание, правильный ответ.

Вместо скачивания файлов вручную и, тем более, написания своих файловых систем, необходимо написать скрипт (на любом нравящемся вам языке, я бы выбрал bash), который будет соединяться с сервером по ssh, делать дамп БД, и коммитить все нужные файлы в SVN. Сам будет делать всю работу, а не вручную. Тогда проблема «забыл закоммитить файл» исчезает автоматически.
Ответ написан