Skip to content

Instantly share code, notes, and snippets.

@davemac
Created May 17, 2019 00:47
Show Gist options
  • Save davemac/ecfb9efd220749830cda3bd51c21fedf to your computer and use it in GitHub Desktop.
Save davemac/ecfb9efd220749830cda3bd51c21fedf to your computer and use it in GitHub Desktop.
# pull a staging WP database to an existing local site
# uses current directory as theme path and ssh alias
pullstage() {
# set -x
START=$(date +%s)
# get current directory name, used for database and URL
# TODO: use echo get_template_directory() and get characters from right to first /
current=${PWD##*/}
cd ~/Sites/$current
# make a backup of the current local database
wp db export _db.sql
wp db reset --yes
# connect to remote site and export the remote database down to our local directory
wp @stage db export - > $current.sql
echo "rsync of remote database to $current directory complete."
wp db import
# database is now imported so delete it
rm -rf $current.sql
# update everything
wp plugin update --all
wp theme update --all
wp core update
wp core language update
# activate plugins used for development
wp plugin activate debug-bar query-monitor acf-theme-code-pro
wp plugin deactivate passwords-evolved
# get the remote site URL, remove the http:// for our search replace
pull_staging_url=$(wp @stage eval '$full_url=get_site_url();$trimmed_url=str_replace("https://", "", $full_url); echo $trimmed_url;')
wp search-replace "$pull_staging_url" "$current.localhost" --all-tables-with-prefix
# udpate local admin user for easy access
dmcweb
cd ~/Sites/$current/wp-content/themes/$current
# add ACF licence key, thanks @mishtershmart
wp eval "acf_pro_update_license('b3JkZXJfaWQ9MzM0NDR8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTA3LTA4IDAzOjAyOjI0');"
END=$(date +%s)
DIFF=$(( $END - $START ))
echo -e "\n$pull_staging_url database now in use on $current.localhost site.\nIt took $DIFF seconds, enjoy!\n"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment