Advertisement
Guest User

Untitled

a guest
Apr 26th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. set -euo pipefail
  4.  
  5. parse_dsn() {
  6. declare dsn=$1 part=$2
  7.  
  8. php -r 'echo parse_url($_SERVER["argv"][1], constant("PHP_URL_" . strtoupper($_SERVER["argv"][2])));' -- "$dsn" $part
  9. }
  10.  
  11. main() {
  12. declare name=${1:-$(basename $(pwd) ".dev")}
  13. name=${name//./_}_heroku
  14.  
  15. local url=$(heroku config|grep mysql | awk '{print $2}')
  16. if [ $? -gt 0 ] || [ -z "$url" ]; then
  17. echo "Cannot get database URL" >&2
  18. return 255
  19. fi
  20.  
  21. local host=$(parse_dsn "$url" host)
  22. local port=$(parse_dsn "$url" port)
  23. local database=$(parse_dsn "$url" path)
  24. local user=$(parse_dsn "$url" user)
  25. local password=$(parse_dsn "$url" pass)
  26.  
  27. (
  28. echo "DROP DATABASE IF EXISTS $name;";
  29. echo "CREATE DATABASE $name;";
  30. echo "USE $name;"
  31. mysqldump --user=$user --password=$password --host=$host --port=${port:-3306} --no-create-db -- "${database##/}"
  32. ) | mysql
  33.  
  34. return 0
  35. }
  36.  
  37. main "$@"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement