Базу данных лучше обновлять через WP-CLI.
Установка:
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp
Таск для экспорта-импорта и подмены домена в базе пишется за минуту:
desc('Export-import database');
task('database', function () {
runLocally('wp db export wp.sql');
upload('wp.sql', "{$deploy_path}/wp.sql");
run('wp db import wp.sql');
run('wp search-replace //example.dev //example.com');
});
Код накидал на скорую руку, естественно нужно добавить переменные путей, задать подменяемые домены и так далее. Предполагается что на серваке и на локалке WP-CLI установлен и откликается на аббревиатуру wp из командной строки. Ну и нельзя забывать, что WP-CLI работает только из корневой папки сайта с Wordpress. Можно задать другую папку, положив в корень сайта файлик:
wp-cli.yml. Для автмоатического деплоя базы нужно выгружать в репу свежий wp.sql. Тогда команда экспорта отпадает за ненадобностью.
Проблема на самом деле только в загрузке папок с аплоадом. Автоматика предполагает, что деплой работает при наступлении некоего события в репозитории проекта, а сам процесс деплоя происходит на виртуальной машине, у которой нет доступа к аплоаду, так как его нет в репозитории. Если отправлять сразу с локалки, что назовем полуавтомат(пример таска выше), то задача упрощается в разы, но на Винде придется помучиться с загрузкой.