diff --git a/turbo_hipster/task_plugins/gate_real_db_upgrade/mysql_migrations.sh b/turbo_hipster/task_plugins/gate_real_db_upgrade/mysql_migrations.sh
deleted file mode 100644
index 15f9d02..0000000
--- a/turbo_hipster/task_plugins/gate_real_db_upgrade/mysql_migrations.sh
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/bin/bash
-
-# $1 is the safe refs URL
-# $2 is the path to the git repo
-# $3 is the nova db user
-# $4 is the nova db password
-# $5 is the nova db name
-
-pip_requires() {
-  requires="tools/pip-requires"
-  if [ ! -e $requires ]
-  then
-    requires="requirements.txt"
-  fi
-  echo "Install pip requirements from $requires"
-  pip install -q -r $requires
-  echo "Requirements installed"
-}
-
-db_sync() {
-  # $1 is the test target
-  # $2 is the path to the git repo
-  # $3 is the nova db user
-  # $4 is the nova db password
-  # $5 is the nova db name
-
-  # Create a nova.conf file
-  cat - > $2/nova-$1.conf <<EOF
-[DEFAULT]
-sql_connection = mysql://$3:$4@localhost/$5?charset=utf8
-log_config = /srv/openstack-ci-tools/logging.conf
-EOF
-
-  find $2 -type f -name "*.pyc" -exec rm -f {} \;
-
-  nova_manage="$2/bin/nova-manage"
-  if [ -e $nova_manage ]
-  then
-    echo "***** DB upgrade to state of $1 starts *****"
-    python $nova_manage --config-file $2/nova-$1.conf db sync
-  else
-    python setup.py clean
-    python setup.py develop
-    echo "***** DB upgrade to state of $1 starts *****"
-    nova-manage --config-file $2/nova-$1.conf db sync
-  fi
-  echo "***** DB upgrade to state of $1 finished *****"
-}
-
-echo "To execute this script manually, run this:"
-echo "$0 $1 $2 $3 $4 $5"
-
-set -x
-
-# Setup the environment
-export PATH=/usr/lib/ccache:$PATH
-export PIP_DOWNLOAD_CACHE=/srv/cache/pip
-
-# Restore database to known good state
-echo "Restoring test database $5"
-mysql --defaults-file=/srv/config/mysql -u root -e "drop database $5"
-mysql --defaults-file=/srv/config/mysql -u root -e "create database $5"
-mysql --defaults-file=/srv/config/mysql -u root -e "create user '$3'@'localhost' identified by '$4';"
-mysql --defaults-file=/srv/config/mysql -u root -e "grant all privileges on $5.* TO '$3'@'localhost';"
-mysql -u $3 --password=$4 $5 < /srv/datasets/$5.sql
-
-echo "Build test environment"
-cd $2
-
-set +x
-echo "Setting up virtual env"
-source ~/.bashrc
-source /etc/bash_completion.d/virtualenvwrapper
-rm -rf ~/virtualenvs/$1
-mkvirtualenv $1
-toggleglobalsitepackages
-set -x
-export PYTHONPATH=$PYTHONPATH:$2
-
-# Some databases are from Folsom
-version=`mysql -u $3 --password=$4 $5 -e "select * from migrate_version \G" | grep version | sed 's/.*: //'`
-echo "Schema version is $version"
-if [ $version == "133" ]
-then
-  echo "Database is from Folsom! Upgrade via grizzly"
-  git checkout stable/grizzly
-  pip_requires
-  db_sync "grizzly" $2 $3 $4 $5
-fi
-
-# Make sure the test DB is up to date with trunk
-git checkout target
-if [ `git show | grep "^\-\-\-" | grep "migrate_repo/versions" | wc -l` -gt 0 ]
-then
-  echo "This change alters an existing migration, skipping trunk updates."
-else
-  echo "Update database to current state of trunk"
-  git checkout trunk
-  pip_requires
-  db_sync "trunk" $2 $3 $4 $5
-  git checkout target
-fi
-
-# Now run the patchset
-echo "Now test the patchset"
-pip_requires
-db_sync "patchset" $2 $3 $4 $5
-
-# Determine the final schema version
-version=`mysql -u $3 --password=$4 $5 -e "select * from migrate_version \G" | grep version | sed 's/.*: //'`
-echo "Final schema version is $version"
-
-# Cleanup virtual env
-set +x
-echo "Cleaning up virtual env"
-deactivate
-rmvirtualenv $1
-echo "done" > /srv/logs/$1
diff --git a/turbo_hipster/task_plugins/gate_real_db_upgrade/nova_mysql_migrations.sh b/turbo_hipster/task_plugins/gate_real_db_upgrade/nova_mysql_migrations.sh
new file mode 100644
index 0000000..778da35
--- /dev/null
+++ b/turbo_hipster/task_plugins/gate_real_db_upgrade/nova_mysql_migrations.sh
@@ -0,0 +1,125 @@
+#!/bin/bash
+
+# $1 is the unique id
+# $2 is the working dir path
+# $3 is the path to the git repo path
+# $4 is the nova db user
+# $5 is the nova db password
+# $6 is the nova db name
+# $7 is the path to the dataset to test against
+# $8 is the pip cache dir
+
+pip_requires() {
+  requires="tools/pip-requires"
+  if [ ! -e $requires ]
+  then
+    requires="requirements.txt"
+  fi
+  echo "Install pip requirements from $requires"
+  pip install -q -r $requires
+  echo "Requirements installed"
+}
+
+db_sync() {
+# $1 is the test target
+# $2 is the working dir path
+# $3 is the path to the git repo path
+# $4 is the nova db user
+# $5 is the nova db password
+# $6 is the nova db name
+# $7 is the logging.conf for openstack
+
+  # Create a nova.conf file
+  cat - > $3/nova-$1.conf <<EOF
+[DEFAULT]
+sql_connection = mysql://$4:$5@localhost/$6?charset=utf8
+log_config = $7
+EOF
+
+  find $3 -type f -name "*.pyc" -exec rm -f {} \;
+
+  nova_manage="$3/bin/nova-manage"
+  if [ -e $nova_manage ]
+  then
+    echo "***** DB upgrade to state of $1 starts *****"
+    python $nova_manage --config-file $3/nova-$1.conf db sync
+  else
+    python setup.py clean
+    python setup.py develop
+    echo "***** DB upgrade to state of $1 starts *****"
+    nova-manage --config-file $3/nova-$1.conf db sync
+  fi
+  echo "***** DB upgrade to state of $1 finished *****"
+}
+
+echo "To execute this script manually, run this:"
+echo "$0 $1 $2 $3 $4 $5 $6 $7 $8"
+
+set -x
+
+# Setup the environment
+export PATH=/usr/lib/ccache:$PATH
+export PIP_DOWNLOAD_CACHE=$8
+
+# Restore database to known good state
+echo "Restoring test database $6"
+mysql -u root -e "drop database $6"
+mysql -u root -e "create database $7"
+mysql -u root -e "create user '$4'@'localhost' identified by '$5';"
+mysql -u root -e "grant all privileges on $6.* TO '$4'@'localhost';"
+mysql -u $4 --password=$5 $6 < /$7/$6.sql
+
+echo "Build test environment"
+cd $3
+
+set +x
+echo "Setting up virtual env"
+source ~/.bashrc
+source /etc/bash_completion.d/virtualenvwrapper
+rm -rf ~/.virtualenvs/$1
+mkvirtualenv $1
+toggleglobalsitepackages
+set -x
+export PYTHONPATH=$PYTHONPATH:$3
+
+# Some databases are from Folsom
+version=`mysql -u $5 --password=$6 $7 -e "select * from migrate_version \G" | grep version | sed 's/.*: //'`
+echo "Schema version is $version"
+
+# zuul puts us in a headless mode, lets check it out into a working branch
+git checkout -b working
+
+# Make sure the test DB is up to date with trunk
+if [ `git show | grep "^\-\-\-" | grep "migrate_repo/versions" | wc -l` -gt 0 ]
+then
+  echo "This change alters an existing migration, skipping trunk updates."
+else
+  echo "Update database to current state of trunk"
+  git checkout master
+  pip_requires
+  db_sync "trunk" $2 $3 $4 $5 $6 $7/logging.conf
+  git checkout working
+fi
+
+# Now run the patchset
+echo "Now test the patchset"
+pip_requires
+db_sync "patchset" $2 $3 $4 $5 $6 $7/logging.conf
+
+# Determine the final schema version
+version=`mysql -u $4 --password=$5 $6 -e "select * from migrate_version \G" | grep version | sed 's/.*: //'`
+echo "Final schema version is $version"
+
+# cleanup branches
+git checkout master
+git branch -D working
+
+# Cleanup virtual env
+set +x
+echo "Cleaning up virtual env"
+deactivate
+rmvirtualenv $1
+set -x
+
+echo "done" 
+
