Обновите тестовый сервер из репозитория, отметьте его и упакуйте дерево приложений на тестовом сервере. После прохождения тестирования разверните пакет на производственном сервере. Тар - это разумный инструмент для упаковки.
Распаковка на производственном сервере в новый каталог, а затем замена каталогов работает хорошо. Вы должны перезагрузить сервер как часть обмена. Откат просто требует отменить обмен каталогами.
Изменения в базе данных сложнее. Я стараюсь, чтобы изменения были совместимы с текущим и предыдущим выпуском. Некоторые изменения необходимо выполнить в следующем выпуске (новые ограничения NOT NULL, отброшенные столбцы и т. Д.) Изменения в содержимом базы данных более сложны.
Данные, специфичные для среды, должны быть частью конфигурации веб-сервера, а не конфигурации приложения. Некоторые данные могут быть сохранены в базе данных, если среды имеют разные базы данных.