ฉันต้องการที่จะทำงานโดยอัตโนมัติของการนำเข้าฐานข้อมูลระยะไกลโดยใช้ที่WP-CLI
กระบวนการปัจจุบันคือไปssh
ยังเซิร์ฟเวอร์และเรียกใช้export
ไฟล์ไปยังโดยใช้WP-CLIคัดลอกไฟล์ไปยังไดเรกทอรีท้องถิ่นผ่านscp
หรือrsync
จากนั้นimport
ไฟล์ผ่าน WP-CLI ฉันต้องการใช้@alias
และลบขั้นตอนให้มากที่สุดที่นี่
ในขณะที่ฉันต้องการคิดว่าบางสิ่งเช่นนี้เป็นไปได้:
echo "$(wp @remote db export -)" | wp @local db import -
ด้วยขนาดฐานข้อมูล> 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 -);
ตอนนี้ฉันต้องคำนึงถึงตารางและ site_urlของ MU-Site แล้ว
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 multisite - ส่งออกรีโมตไซต์ไปยังโลคัลอิมพอร์ตโดยไม่มีไฟล์:
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>
- Sparks - การซิงค์ฐานข้อมูล
- การย้ายเว็บไซต์ WordPress ด้วย wp-cli
- การโอนย้ายไซต์อย่างรวดเร็วด้วย SSH และ WP-CLI
- ปลั๊กอิน 10up / MU-Migration
- วิธีใช้ WP-CLI จากภายใน WordPress ไม่ใช่ SSH
- มีวิธีการ WP-CLI สำหรับ get_current_blog_id, get_blog_details หรือ $ wpdb-> คำนำหน้าหรือไม่