Как правильно организовать процесс веб-разработки?

Уважаемое сообщество,
долгое время занимаюсь развитием собственного сайта, написанного на PHP, MySQL. Скрипты редактирую прямо на сервере. Начал понимать что нужно переходить на работу версиями. Пишу скрипты я один, на сервере Linux. Также интересует как правильно переезжать на новую версию скриптов — ведь при работе над ней пользователи могли добавить новые данные в БД, а в новой версии структура БД может быть другой.

Расскажите как правильно организовать разработку PHP скриптов версиями, как правильно переезжать на новую версию без перебоев в работе сервера. Если есть полезные книги по этой теме — также порекомендуйте.
  • Вопрос задан
  • 3149 просмотров
Пригласить эксперта
Ответы на вопрос 4
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Чтобы справляться с проблемами при переходе на новую версию БД, в некоторых ORM есть т.н. «миграции».
Ответ написан
Комментировать
vaevictus
@vaevictus
Ну работа через SVN/git — это самое оно для работы с различными версиями. Самый главный плюс, если разрабатываете в одиночку — быстрый откат изменений
Переход на новую версию скриптов, с изменённой базой данных можно делать двумя способами:
1. Отключение сервера на время перехода (в Вашем случае, это скорее всего пара минут, в не бизнес время можно позволить)
2. Перенос основной базы в новый формат, запуск новой версии, перенос того, что успело попасть в старую базу за время конвертации. Однако в этом случае возможны тысячи ньюансов, так что лучше кардинально структуру БД на рабочем проекте не менять.
Ответ написан
Комментировать
@olekl
Ну про SVN/Git уже написали. Еще бы хорошо систему трекинга задач/ошибок подключить (TRAC, Bugzilla и т.п., бесплатных решений хватает, интегрирующихся с системами контроля версий), очень удобно потом искать/отслеживать историю изменений.

А про новую версию скриптов и бд — помог бы тестовый сервер, на котором бы миграция могла тестироваться, плюс автоматический backup-restore всего сайта (скрипты + бд). Тогда тест мог бы быть чем-то вроде:
— бекап «живой» системы
— разворачивание бекапа на тестовом сервере
— запуск скриптов миграции на тестовом сервере
— проверка результата
Ответ написан
homm
@homm
В простом случае: заводите папочку migrations, создаете файл 0000.sql, сливаете в него структуру базы данных. При изменениях структуры создаете файлик 0001.sql, куда записываете alter и create table. Комитете файлик вместе с тем кодом, который умеет работать с измененной базой.

Как только при чекауте у вас появляется новый файлик xxxx.sql, выполняете его. Можете вручную, можете хук для системы контроля версий написать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы