मैं WP-CLI का उपयोग करके एक दूरस्थ डेटाबेस आयात करने के कार्य को स्वचालित करना चाहूंगा ।
वर्तमान प्रक्रिया ssh
सर्वर के लिए है, और WP-CLIexport
का उपयोग करके फ़ाइल को चलाने के लिए , फ़ाइल को स्थानीय निर्देशिका में या फिर WP-CLI के माध्यम से फ़ाइल की प्रतिलिपि बनाएँ । मैं एक का उपयोग करना चाहते हैं और यहाँ के रूप में संभव के रूप में कई चरणों को हटा दें।scp
rsync
import
@alias
जबकि मैं कुछ इस तरह सोचना संभव है:
echo "$(wp @remote db export -)" | wp @local db import -
DB आकार> 5GB असम्पीडित के साथ, यह एक अधिक व्यवहार्य विकल्प जैसा लगता है:
DB_EXPORT=$(echo "$(wp @remote db export -)" | gzip | base64 -w0); echo "$DB_EXPORT" | base64 -d | gunzip | wp @local db import -
दुर्भाग्य से मैं टर्मिनल की सीमा को मार सकता हूं या इस कॉल की संरचना को साफ किया जाना चाहिए क्योंकि मेरी खिड़की बस लटका हुआ लगती है।
क्या कोई और उपाय है जहाँ मैं scp
इस प्रक्रिया से हटा सकता हूँ ? क्या कोई अन्य आदेश हैं जिनका मैं यहां उपयोग कर सकता हूं? मैंने यहां बहु-साइट को उदाहरणों से हटा दिया है, लेकिन यह भी विचार करने के लिए कुछ है जो उर्फ का हिस्सा हो सकता है।
आदर्श रूप में, मैं भविष्य में कुछ इस तरह की उम्मीद करूंगा:
wp @local db import @remote
बेसिक वैग्रांट बॉक्स के@alias
साथ उपयोग करने का वर्तमान उदाहरण सेटअप ।
~/.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
अपडेट
@Davemac पर यह ऐसा लगता है कि इस प्रक्रिया को आसानी से सरल बनाया जा सकता है
wp db import - <<< $(wp db export -);
अब मुझे केवल MU-Site की तालिकाओं और 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();")
प्रयोग search-replace
- धन्यवाद @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 मल्टीसाइट - फ़ाइलों के बिना स्थानीय आयात के लिए एक दूरस्थ साइट निर्यात करें:
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 -
समान
- # 3162 - के साथ स्थानीय फाइल सिस्टम का उपयोग करने के लिए समर्थन
wp --ssh=<host>
- स्पार्क्स - सिंकिंग-डेटाबेस
- Wp-cli के साथ एक WordPress साइट माइग्रेट करना
- SSH और WP-CLI के साथ एक साइट को तुरंत माइग्रेट करना
- 10up / MU- माइग्रेशन प्लगइन
- वर्डप्रेस के अंदर WP-CLI का उपयोग कैसे करें, SSH से नहीं
- क्या get_current_blog_id, get_blog_details या $ wpdb-> उपसर्ग के लिए WP-CLI विधियाँ हैं?