Chciałbym zautomatyzować zadanie importowania zdalnej bazy danych za pomocą WP-CLI .
Bieżącym procesem jest przesłanie ssh
do serwera i uruchomienie export
pliku do za pomocą WP-CLI , skopiowanie pliku do lokalnego katalogu za pomocą scp
lub rsync
, a następnie import
plik za pośrednictwem WP-CLI. Chciałbym wykorzystać tutaj @alias
i usunąć jak najwięcej kroków tutaj.
Chociaż chciałbym myśleć, że coś takiego jest możliwe:
echo "$(wp @remote db export -)" | wp @local db import -
Przy nieskompresowanym rozmiarze DB> 5 GB wydaje się to bardziej opłacalną opcją:
DB_EXPORT=$(echo "$(wp @remote db export -)" | gzip | base64 -w0); echo "$DB_EXPORT" | base64 -d | gunzip | wp @local db import -
Niestety, mogę przekroczyć limit terminala lub struktura tego połączenia powinna zostać wyczyszczona, ponieważ moje okno po prostu wydaje się zawiesić.
Czy istnieje inne rozwiązanie, w którym mogę usunąć scp
ten proces? Czy są jeszcze jakieś polecenia, których mogę tutaj użyć? Usunąłem wiele witryn z podanych tutaj przykładów, ale warto też rozważyć, która z nich może być częścią aliasu.
Idealnie byłoby mieć nadzieję na coś takiego w przyszłości:
wp @local db import @remote
Bieżąca przykładowa konfiguracja korzystania @alias
z Basic 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
Aktualizacje
Na podstawie @davemac wygląda na to, że ten proces można łatwo uprościć
wp db import - <<< $(wp db export -);
Teraz muszę tylko wziąć pod uwagę tabele MU-Site i 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();")
Korzystanie search-replace
- dzięki @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 - wyeksportuj zdalną witrynę do lokalnego importu bez plików:
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 -
Podobne
- # 3162 - Obsługa używania lokalnego systemu plików z
wp --ssh=<host>
- Sparks - Synchronizowanie bazy danych
- Migracja strony WordPress za pomocą wp-cli
- Szybka migracja strony za pomocą SSH i WP-CLI
- Wtyczka 10up / MU-Migration
- Jak korzystać z WP-CLI z poziomu WordPress, a nie SSH
- Czy istnieją metody WP-CLI dla prefiksu get_current_blog_id, get_blog_details lub $ wpdb->?