GithubHelp home page GithubHelp logo

jonbp / wp-cli-sync Goto Github PK

View Code? Open in Web Editor NEW
30.0 3.0 10.0 36 KB

A WP-CLI command for syncing a live site to a development environment

License: MIT License

PHP 100.00%
wp-cli wordpress php bedrock bedrock-wordpress-installation

wp-cli-sync's Introduction

WP-CLI SyncWP-CLI Sync

Packagist Latest Version Packagist Downloads GitHub Open Issues GitHub Open Pull Requests

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.

Screenshot

Requirements

You will need the following to use this plugin:

Installation

To install this plugin, follow these steps:

  1. Require the plugin by running:
composer require jonbp/wp-cli-sync
  1. 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=""
  1. 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 [email protected] --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.

Variable Description
DEV_POST_SYNC_QUERIES A comma seperated list of SQL queries to run after the sync has completed.
DEV_SYNC_DIR_EXCLUDES A comma seperated list of directories within the uploads folder to exclude from the sync.
DEV_TASK_DEBUG Set to true to show debug information about the commands being run. Useful for debugging if something isn't working as expected.
UPLOAD_DIR The name of the uploads directory. Defaults to app/uploads where the uploads folder is located on a bedrock project.

wp-cli-sync's People

Contributors

dependabot-preview[bot] avatar gmutschler avatar jayvolr avatar jonbp avatar muffinman avatar paintface avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

wp-cli-sync's Issues

DB sync failing to change directory

The database portion of the DB sync is failing for me. I think the SSH connection's commands should be joined with an && on this line (as opposed to a single &).

Using a single & runs the preceding command in the background. Can't explain why this works on some servers and not others but here's an example on a server which experiences it and I'd expect all servers to behave like this.

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.