I want to sync users registered at production environment to development environment.

Using the below command sequence for this:

1) Find max user id at the target dev environment using:

    wp user list --role='customer' --orderby=ID --order=asc | awk  -v max=0 'FNR == 1 {{next}} {{if($1>max){{want=$1; max=$1}}}}END{{print want}}'

2) Export users whose id is larger than the max user id from 1) to csv on the source production env.

wp user list --fields=ID,user_login,user_email,user_pass,user_registered  --role='customer' --orderby=ID --order=asc --format=csv --user={root_user} --path={wp_path} --ssh={usr}@{host}:{port} | awk 'FNR == 1 {{next}} $1+0>{max_user_id} {{print ;}}'

3) download the csv file from production to dev env.

4) import the csv to target dev env

wp user import-csv /tmp/users_to_sync.csv --skip-update --user={user} --path={path}

However, there's an issue that passwords are exported as hashed. After successful step 4, imported user can't login on the dev. env.

How to sync users correctly if it's possible at all using wp-cli? Is downloading users and users_meta tables enough? Maybe its simplicity overweights the complexity of syncing users using wp cli?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.