Ansible playbooks for Trellis database and uploads sync.
Just copy and run without any extra configuration.
- Copy
database.yml
anduploads.yml
files into Trellis root folder - Copy
bin/sync.sh
files into Trellis bin folder - (Optional) Add
db-backup-*.sql.gz
to your Bedrock.gitignore
file
Run ./bin/sync.sh <environment> <site name> <type> <mode>
- Available
<type>
options:uploads
,database
,all
- Available
<mode>
options:push
,pull
- The
push
is for upload data from development and update selected environment, and thepull
for download data from selected environment and update development. uploads
sync is not destructive, it only adds or update new files, don't delete missing files.- On every database sync a datetimed backup
db-backup-YYYYMMDDTHHMMSS.sql.gz
is saved before import data.
You can use alias for a shorter or more intuitive commands
- staging - stag - s
- production - prod - p
- database - db
- uploads - media
- push - up
- pull - down
Examples:
./bin/sync.sh stag example.com db up
./bin/sync.sh prod example.com media down
./bin/sync.sh prod example.com all up
- Tested up to Ansible 2.6.1
- Replace Elementor urls on database sync (if installed).
- For database sync the development vagrant VM must be powered on every time you run a command
- On every database sync a
db-backup-YYYYMMDDTHHMMSS.sql.gz
file is automatically created inside destination environment Bedrock folder. In development, if you don't want it to be saved in the repository:- You can add
db-backup-*.sql.gz
to your Bedrock.gitignore
file - Or you can comment
PULL > Backup development database
task ondatabase.yml
- You can add
- Anyone is welcome to contribute to the plugin.
- Please merge (squash) all your changes into a single commit before you open a pull request.
MIT
© 2018 Creame. Heavily inspired by trellis-database-uploads-migration and trellis-db-push-and-pull.
Special thanks to the Roots team whose Trellis make this project possible.