Vorrei automatizzare l'attività di importazione di un database remoto utilizzando WP-CLI .
Il processo corrente è sshsul server ed esegui un exportfile su utilizzando WP-CLI , copia il file in una directory locale tramite scpo rsync, quindi importil file tramite WP-CLI. Vorrei utilizzare @aliase rimuovere il maggior numero di passaggi possibile qui.
Mi piacerebbe pensare che qualcosa del genere sia possibile:
echo "$(wp @remote db export -)" | wp @local db import -
Con una dimensione DB> 5 GB non compressa, questa sembra un'opzione più praticabile:
DB_EXPORT=$(echo "$(wp @remote db export -)" | gzip | base64 -w0); echo "$DB_EXPORT" | base64 -d | gunzip | wp @local db import -
Sfortunatamente potrei colpire i limiti del terminale o la struttura di questa chiamata dovrebbe essere ripulita perché la mia finestra sembra bloccarsi.
C'è un'altra soluzione in cui posso rimuovere scpda questo processo? Ci sono altri comandi che potrei utilizzare qui? Ho rimosso più siti dagli esempi qui, ma è anche qualcosa da considerare che potrebbe far parte dell'alias.
Idealmente, spererei in qualcosa del genere in futuro:
wp @local db import @remote
Esempio di configurazione attuale dell'uso @aliascon la scatola Basic Vagrant .
~/.wp-cli/config.yml
@basic:
ssh: basic.dev/var/www/wordpress/
~/.ssh/config
Host basic.dev
HostName basic.dev
User vagrant
IdentityFile ~/sites/basic.dev/.vagrant/machines/default/virtualbox/private_key
aggiornamenti
Basandosi su @davemac sembra che questo processo possa essere facilmente semplificato
wp db import - <<< $(wp db export -);
Ora ho solo bisogno di prendere in considerazione le tabelle di MU-Site e site_url
wp @basic db export --tables=$(wp @basic db tables --url=http://basic.dev/site/ --format=csv) - | gzip > basic-dev-site.sql.gz
blog_id=$(wp @basic eval --url=http://basic.dev/site/ 'echo get_current_blog_id();');
prefix=$(wp @basic eval --url=http://basic.dev/site/ 'global $wpdb; echo $wpdb->prefix;')
site_url=$(wp @basic eval "echo site_url();")
Utilizzo search-replace- grazie @WestonRuter
sql=$(wp search-replace $(wp eval "echo site_url();" | cut -d ":" -f2) "//new-site.com" --network --skip-columns=guid --export); printf "%s" "$sql"
Multisito WP: esporta un sito remoto per l'importazione locale senza file:
wp @remote db export --tables=$remote_tables - | sed "s#$remote_prefix#$local_prefix#g" | sed "s#$remote_site_domain#$local_site_domain#g" | wp @local db import -
Immagine simile
- # 3162 - Supporto per l'utilizzo del filesystem locale con
wp --ssh=<host> - Sparks - Database di sincronizzazione
- Migrare un sito WordPress con wp-cli
- Migrazione rapida di un sito con SSH e WP-CLI
- Plug-in 10up / MU-Migration
- Come utilizzare WP-CLI da WordPress, non da SSH
- Esistono metodi WP-CLI per get_current_blog_id, get_blog_details o $ wpdb-> prefisso?