WP-CLI kullanarak uzak bir veritabanını içe aktarma görevini otomatikleştirmek istiyorum .
Geçerli işlem etmektir ssh
sunucuya ve bir çalıştırmak export
kullanarak dosyaya WP-CLI üzerinden yerel bir dizine dosyayı kopyalamak, scp
veya rsync
, sonra import
WP-CLI yoluyla dosyası. @alias
Burada 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.
scp
Bu 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 @alias
ile 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ı?