jonbp / wp-cli-sync
A WP-CLI command for syncing a live site to a development environment
Installs: 2 009
Dependents: 0
Suggesters: 0
Security: 0
Stars: 29
Watchers: 3
Forks: 10
Open Issues: 1
Type:wordpress-muplugin
Requires
- wp-cli/db-command: ^2.0
- wp-cli/extension-command: ^2.1
- wp-cli/maintenance-mode-command: ^2.0
- wp-cli/wp-cli: ^2.8
README
About
A WP-CLI command for syncing a live site to a development environment.
This plugin is designed to be used with a Roots Bedrock based WordPress project.
Requirements
You will need the following to use this plugin:
Installation
To install this plugin, follow these steps:
- Require the plugin by running:
composer require jonbp/wp-cli-sync
- Add the following to your
.env
file (don't forget.env.example
for reference 😉):
# WP-CLI Sync Settings [wp sync] LIVE_SSH_USERNAME="" LIVE_SSH_HOSTNAME="" REMOTE_PROJECT_LOCATION="~/gitrepo" # Plugins should be formatted in a comma seperated format # For example: "plugin1,plugin2,plugin3" # Plugins activated on sync DEV_ACTIVATED_PLUGINS="" # Plugins deactivated on sync DEV_DEACTIVATED_PLUGINS=""
- Run
wp sync
from the project root.
First Sync
You may find yourself working on a bedrock project that already exists on a production server and you don't have the database setup locally yet. Running wp sync
in the project will fail in this case as it requires an active WordPress installation to run.
To remedy this, you can run the following commands to create a database (if necessary) and create a basic installation inside that database in order to run the plugin and its first sync.
wp db create
wp core install --url=abc.xyz --title=abc --admin_user=abc --admin_password=abc --admin_email=abc@abc.xyz --skip-email
It’s not necessary to edit the variables on the second line as the database is overwritten by the plugin during sync. The code is simply to give the plugin the requirements it needs to run without the real database installed.
Extra Environment Variables
Below is a list of extra environment variables that can be added to your .env
file to customise the sync process.