Я б хотів автоматизувати завдання імпорту віддаленої бази даних за допомогою WP-CLI .
Поточний процес полягає в тому, щоб ssh
перейти на сервер і запустити export
файл у файл за допомогою WP-CLI , скопіювати файл у локальний каталог через scp
або rsync
, а потім import
файл через WP-CLI. Я хотів би використати тут @alias
і видалити якомога більше кроків.
Хоча я хотів би подумати, що таке подібне можливо:
echo "$(wp @remote db export -)" | wp @local db import -
Якщо розмір БД> 5 Гб не стиснений, це здається більш життєздатним варіантом:
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
з базовим кодом Vagrant .
~/.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 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 -
Similiar
- # 3162 - Підтримка використання локальної файлової системи за допомогою
wp --ssh=<host>
- Іскри - синхронізація-база даних
- Міграція сайту WordPress за допомогою wp-cli
- Швидка міграція сайту за допомогою SSH та WP-CLI
- Плагін 10up / MU-міграції
- Як використовувати WP-CLI всередині WordPress, а не SSH
- Чи існують методи WP-CLI для get_current_blog_id, get_blog_details або префікса $ wpdb->?