Drush SQL Sync Alternative: SQL Sync Pipe

Using Drush to sync databses (drush sql-sync) is a valuable tool, but it is not always an efficient choice when dealing with large databases (think over 1GB). SQL Sync Pipe (drush sql-sync-pipe) is a Drush command that provides an alternative for drush sql-sync that streams the database dump directly from the source to the destination as opposed to sql-sync saving the database dump, transferring it via rsync and then importing the dump file. As an added bonus it excludes cache tables by default.


Below are examples from the command's README, syncing the same 1.05Gib database using the two different methods:

drush sql-sync

Command:            drush sql-sync @alias.dev @alias.sandbox --no-cache
Transfer size: 88.1MiB (compressed using rsync)
Import size: 1.05GiB
Total time elapsed: 46 minutes 47 seconds

drush sql-sync-pipe

Command:                 drush sql-sync-pipe @alias.dev @alias.sandbox --progress
Transfer size: 88.1MiB (sent compressed using gzip)
Import size: 1.05GiB
Import & transfer time: 27 minutes 05 seconds
Total time elapsed: 30 minutes 35 seconds

What are you waiting for? Download and install SQL Sync Pipe and get started!

drush dl drush_sql_sync_pipe --destination=$HOME/.drush && drush cc drush