Сменить в БД домен сайта на WordPress

Довольно странная ситуация, что в WP нет встроенного механизма миграции. Если сайт доступен по нескольким адресам, то все ссылки втч на админку сразу перенаправляются на основной адрес. Если адреса ссылаются на разные сервера. То не получится даже зайти в админку нового сервера.
При вставке картинок встроенным редактором — также всегда указывается полный адрес.

Чтобы сменить домен и отказаться от старого, необходимо заменить адрес в таблице опций. И поменять все ссылки в таблице контента. Возможно в таблицах опций плагинов или тем также надо делать замену.
Я такую замену оформил shell скриптом. Кому удобнее — эти же запросы можно выполнить в phpmyadmin (заменив переменные на их значения) или переделать в php скрипт.

oldname=site.tempsite.ru
newname=site.ru
dbuser=user
dbpass=pass
dbname=db
prefix=wp_

sqlcmd="UPDATE "$prefix"options SET option_value = REPLACE(option_value, 'http://$oldname', 'http://$newname') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE "$prefix"posts SET guid = REPLACE(guid, 'http://$oldname','http://$newname');
UPDATE "$prefix"posts SET post_content = REPLACE(post_content, 'http://$oldname', 'http://$newname');"

mysql -u $dbuser -h localhost -p$dbpass $dbname -e "$sqlcmd"

UPD Если изменен также и префикс таблиц, то войти в админку не получится, пока не будут изменены поля с этим префиксом в таблицах options и usermeta
Повоевав с ними — оставил старый.