Desde WP-CLI 0.24.0 agora você pode usa aliases que permite importar um banco de dados remoto facilmente.
Usando aliases, você pode executar comandos do WP-CLI em outra instalação do WP-CLI. Essa instalação pode ser uma máquina remota.
Com isso em mente, eu juntei um apelido bash que une vários comandos WP-CLI para puxar um banco de dados WP remoto para um site local. Neste caso, eu tenho um arquivo wp-cli.yml local onde eu defini @prod como um alias para o meu site de produção (que usa um alias SSH).
pullprod() {
# make a backup of the current local database
wp db export _db.sql
wp db reset --yes
# get current directory name, used for database and URL
current=${PWD##*/}
# connect to remote site and ssh the remote database down to our local directory
wp @prod db export - > $current.sql
echo "copying of remote database to $current directory complete."
wp db import
# database is now imported so we can delete it
rm -rf $current.sql
# get the remote site URL, remove the http:// for our search replace
production_url=$(wp @prod eval '$full_url=get_site_url();$trimmed_url=str_replace("http://", "", $full_url); echo $trimmed_url;')
wp search-replace "$production_url" "$current.localhost"
echo "All done, enjoy!"
}
Um comando pullprod
no site atual do WP fará o que você precisa, assim como você tem o alias configurado (que também pode ser automatizado).
Funciona, mas minha próxima tarefa é melhorar como obtenho a variável $ production_url, já que atualmente estou puxando-a de um arquivo local.