Saya ingin mengotomatiskan tugas mengimpor basis data jauh menggunakan WP-CLI .
Proses saat ini adalah ke ssh
server, dan menjalankan export
file ke menggunakan WP-CLI , menyalin file ke direktori lokal melalui scp
atau rsync
, dan kemudian import
file melalui WP-CLI. Saya ingin memanfaatkan @alias
dan menghapus langkah sebanyak mungkin di sini.
Sementara saya ingin berpikir sesuatu seperti ini adalah mungkin:
echo "$(wp @remote db export -)" | wp @local db import -
Dengan ukuran DB> 5GB yang tidak terkompresi, ini sepertinya opsi yang lebih layak:
DB_EXPORT=$(echo "$(wp @remote db export -)" | gzip | base64 -w0); echo "$DB_EXPORT" | base64 -d | gunzip | wp @local db import -
Sayangnya saya mungkin mengenai batasan terminal atau struktur panggilan ini harus dibersihkan karena jendela saya sepertinya menggantung.
Apakah ada solusi lain di mana saya dapat menghapus scp
dari proses ini? Apakah ada perintah lain yang bisa saya manfaatkan di sini? Saya telah menghapus banyak situs dari contoh di sini, tetapi itu juga sesuatu yang perlu dipertimbangkan yang bisa menjadi bagian dari alias.
Idealnya, saya berharap untuk hal seperti ini di masa depan:
wp @local db import @remote
Contoh pengaturan saat ini menggunakan @alias
dengan kotak Vagrant Dasar .
~/.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
Pembaruan
Berbasis pada @davemac sepertinya proses ini dapat dengan mudah disederhanakan
wp db import - <<< $(wp db export -);
Sekarang saya hanya perlu mempertimbangkan tabel MU-Site dan 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();")
Menggunakan search-replace
- terima kasih @WestonRuter
sql=$(wp search-replace $(wp eval "echo site_url();" | cut -d ":" -f2) "//new-site.com" --network --skip-columns=guid --export); printf "%s" "$sql"
WP multisite - mengekspor situs jarak jauh ke impor lokal tanpa 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 -
Serupa
- # 3162 - Dukungan untuk menggunakan sistem file lokal dengan
wp --ssh=<host>
- Sparks - Sinkronisasi-Database
- Bermigrasi Situs WordPress Dengan wp-cli
- Bermigrasi Situs dengan Cepat dengan SSH dan WP-CLI
- Plugin 10up / MU-Migration
- Cara memanfaatkan WP-CLI dari dalam WordPress, bukan SSH
- Apakah ada metode WP-CLI untuk get_current_blog_id, get_blog_details atau awalan $ wpdb->?