WP-CLI มีคำสั่งจัดการ Database ที่ทรงพลัง ช่วยให้คุณทำ Search-Replace, Export, Import และ Optimize Database ของ WordPress บน Cloud VPS ของ de.co.th ได้อย่างรวดเร็ว โดยเฉพาะ Search-Replace ที่จำเป็นมากเมื่อย้ายโดเมนหรือเปลี่ยนจาก HTTP เป็น HTTPS
Export Database
การ Export Database ด้วย WP-CLI ง่ายกว่าการใช้ phpMyAdmin มาก:
# Export Database ทั้งหมด
wp db export backup.sql
# Export เฉพาะบาง Table
wp db export --tables=wp_posts,wp_postmeta backup_posts.sql
# Export พร้อม Compress
wp db export - | gzip > backup_$(date +%Y%m%d).sql.gz
# Export เฉพาะ Structure (ไม่มีข้อมูล)
wp db export --mysqldump_command='mysqldump --no-data' structure.sql
Import Database
Import Database กลับเข้า WordPress:
# Import จากไฟล์ SQL
wp db import backup.sql
# Import จากไฟล์ที่ Compress
gunzip < backup_20250327.sql.gz | wp db import -
# Import จาก Remote Server
ssh user@old-server 'wp db export -' | wp db import -
Search-Replace ใน Database
คำสั่ง search-replace เป็นหนึ่งในคำสั่งที่ใช้บ่อยที่สุดของ WP-CLI โดยเฉพาะเมื่อย้ายเว็บไซต์หรือเปลี่ยนโดเมน:
# เปลี่ยน Domain (Dry Run ก่อน)
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --dry-run
# เปลี่ยน Domain จริง
wp search-replace 'http://old-domain.com' 'https://new-domain.com'
# เปลี่ยนจาก HTTP เป็น HTTPS
wp search-replace 'http://yourdomain.com' 'https://yourdomain.com'
# เปลี่ยน Path (เช่น ย้ายจาก Subdirectory)
wp search-replace '/blog' '' --skip-columns=guid
# Search-Replace เฉพาะบาง Table
wp search-replace 'old-text' 'new-text' wp_posts wp_postmeta
ข้อควรระวังเมื่อใช้ Search-Replace
WP-CLI search-replace มีความสามารถในการจัดการ Serialized Data ที่ PHP ใช้เก็บข้อมูลใน Database ได้อย่างถูกต้อง ซึ่งเป็นข้อได้เปรียบเหนือการทำ SQL Replace โดยตรง ควรรัน --dry-run ก่อนเสมอเพื่อดูจำนวน Replacement ที่จะเกิดขึ้น และ Backup Database ก่อนทุกครั้ง ใช้ --skip-columns=guid เมื่อเปลี่ยน URL เพื่อหลีกเลี่ยงปัญหากับ RSS Feed
Optimize Database
ทำความสะอาดและ Optimize Database เพื่อเพิ่มประสิทธิภาพ:
# Optimize ทุก Table
wp db optimize
# Repair Table ที่มีปัญหา
wp db repair
# ดูขนาด Database
wp db size --tables
# ลบ Post Revision เก่า
wp post delete $(wp post list --post_type=revision --format=ids) --force
# ลบ Transients หมดอายุ
wp transient delete --expired
# ลบ Spam Comments
wp comment delete $(wp comment list --status=spam --format=ids) --force
รัน SQL Query โดยตรง
สำหรับงานที่ต้องการ Query เฉพาะทาง:
# รัน SQL Query
wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_status='publish'"
# ดู Table ทั้งหมด
wp db query "SHOW TABLES"
# ตรวจสอบ Autoloaded Options ที่มีขนาดใหญ่
wp db query "SELECT option_name, LENGTH(option_value) as size FROM wp_options WHERE autoload='yes' ORDER BY size DESC LIMIT 20"
สรุป
WP-CLI เป็นเครื่องมือจัดการ Database WordPress ที่ดีที่สุดบน Cloud VPS ของ de.co.th ไม่ว่าจะเป็นการ Export/Import, Search-Replace หรือ Optimize Database ทุกอย่างทำได้ผ่าน Command Line อย่างรวดเร็วและปลอดภัย อย่าลืม Backup ก่อนทำ Search-Replace ทุกครั้ง และใช้ --dry-run เพื่อตรวจสอบผลลัพธ์ก่อนรันจริง

