Here is how drush sql-sync works between two remotes:
Logs-in into
Logs into remote@destination
remote via ssh and creates destination database if needed viasql-create
.@destination
via SSH and creates destination database if needed viasql-create
.Backups database on
Backs up database on@source
by performingsql-dump
on source unless told otherwise and saves it intodrush-backups
folder.@source
by performingsql-dump
on source unless told otherwise and saves it intodrush-backups
folder.Logs-in into
Logs into@destination
remote via ssh and executesrsync
to transfer database from Source to Destination.@destination
remote via SSH and executesrsync
to transfer database from Source to Destination.
Example: rsync @source:drush-backups/db.sql.gz @destination:/tmp/db.sql.gz
To make this work, you have to make sure that:
- both local and remote drush have the same version (either 6.x or 7.x),
- on Destination the
@source
alias should be accessible for drush, rsync
tool doesn't support two remotes, so only one may be remote.
Based on above it seems you can't use sql-sync
drush command to transfer the database between two remotes in drush 7.x (see: #161).
As for workaround, you've to first dump the database from your source onto your local and transfer back to the Destinationdestination, in example:
drush @source sql-dump | drush @destination sql-cli
This should transfer the database between two remotes without sql-sync
limitation.