WP-CLI kullanarak uzak bir veritabanını içe aktarma görevini otomatikleştirmek istiyorum .
Geçerli işlem etmektir sshsunucuya ve bir çalıştırmak exportkullanarak dosyaya WP-CLI üzerinden yerel bir dizine dosyayı kopyalamak, scpveya rsync, sonra importWP-CLI yoluyla dosyası. @aliasBurada mümkün olduğunca çok adımı kullanmak ve kaldırmak istiyorum.
Ben böyle bir şey mümkün olduğunu düşünmek istiyorum iken:
echo "$(wp @remote db export -)" | wp @local db import -
DB boyutu> 5 GB sıkıştırılmamış olduğunda, bu daha uygun bir seçenek gibi görünür:
DB_EXPORT=$(echo "$(wp @remote db export -)" | gzip | base64 -w0); echo "$DB_EXPORT" | base64 -d | gunzip | wp @local db import -
Ne yazık ki terminalin sınırlarını vuruyor olabilirim veya bu çağrının yapısı temizlenmeli çünkü pencerem asılmış görünüyor.
scpBu işlemden kaldırabileceğim başka bir çözüm var mı ? Burada kullanabileceğim başka komutlar var mı? Buradaki örneklerden çoklu siteyi kaldırdım, ancak bu aynı zamanda takma adın bir parçası olabilecek dikkate alınması gereken bir şey.
İdeal olarak, gelecekte böyle bir şey umarım:
wp @local db import @remote
Kullanmanın Güncel örneği kurulumu @aliasile Temel Serseri kutu .
~/.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
Güncellemeler
Üzerinde Üs @davemac bu süreç kolaylıkla basitleştirilmiş olabilir gibi görünüyor
wp db import - <<< $(wp db export -);
Şimdi MU-Site'nin tablolarını ve site_url'unu dikkate almam gerekiyor
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();")
Kullanma search-replace- teşekkürler @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 - uzak bir siteyi dosyasız yerel içe aktarmaya aktar:
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 -
similiar
- # 3162 - Yerel dosya sistemini kullanma desteği
wp --ssh=<host> - Kıvılcımlar - Senkronizasyon Veritabanı
- Wp-cli ile WordPress Sitesini Taşıma
- Bir Siteyi SSH ve WP-CLI ile Hızlıca Taşıma
- 10up / MU-Migration eklentisi
- SSH'den değil WordPress içinden WP-CLI nasıl kullanılır?
- Get_current_blog_id, get_blog_details veya $ wpdb-> öneki için WP-CLI yöntemleri var mı?