Задать вопрос

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

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

Расскажите как правильно организовать разработку PHP скриптов версиями, как правильно переезжать на новую версию без перебоев в работе сервера. Если есть полезные книги по этой теме — также порекомендуйте.
  • Вопрос задан
  • 3149 просмотров
Подписаться 9 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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, выполняете его. Можете вручную, можете хук для системы контроля версий написать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 160 000 до 250 000 ₽
BGStaff Москва
До 300 000 ₽
Greenway Global Новосибирск
от 150 000 до 250 000 ₽