diff --git a/.travis.yml b/.travis.yml
index 868a6c6c238fcb2fe2d3faa232dceee0594521ab..ad00ded07cbc20020318bf15a81804c82ca5358c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,8 +19,7 @@ services:
 before_script:
   - "cp config/database.yml.$DB config/database.yml"
   - "cp config/gitlab.yml.example config/gitlab.yml"
-  - "bundle exec rake db:create RAILS_ENV=test"
-  - "bundle exec rake db:migrate RAILS_ENV=test"
+  - "bundle exec rake db:setup RAILS_ENV=test"
   - "bundle exec rake db:seed_fu RAILS_ENV=test"
   - "sh -e /etc/init.d/xvfb start"
 script: "bundle exec rake travis --trace"
diff --git a/Gemfile b/Gemfile
index fcda135390730d33a1b4c400aa0bfad283781e4f..49fbcad04fcdbb0d9a46c79e9185e10013c00f33 100644
--- a/Gemfile
+++ b/Gemfile
@@ -124,7 +124,7 @@ group :development, :test do
   gem "capybara"
   gem "pry"
   gem "awesome_print"
-  gem "database_cleaner"
+  gem "database_cleaner", ref: "f89c34300e114be99532f14c115b2799a3380ac6", git: "https://github.com/bmabey/database_cleaner.git"
   gem "launchy"
   gem 'factory_girl_rails'
 
diff --git a/Gemfile.lock b/Gemfile.lock
index 7afacfce9cd36abb947ccd3191edc3f7ece8181f..d8be14ba80ab191d6001e601026d27cdfa8fbb54 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,3 +1,10 @@
+GIT
+  remote: https://github.com/bmabey/database_cleaner.git
+  revision: f89c34300e114be99532f14c115b2799a3380ac6
+  ref: f89c34300e114be99532f14c115b2799a3380ac6
+  specs:
+    database_cleaner (0.9.1)
+
 GIT
   remote: https://github.com/ctran/annotate_models.git
   revision: be4e26825b521f0b2d86b181e2dff89901aa9b1e
@@ -140,7 +147,6 @@ GEM
     colorize (0.5.8)
     crack (0.3.1)
     daemons (1.1.9)
-    database_cleaner (0.9.1)
     devise (2.1.2)
       bcrypt-ruby (~> 3.0)
       orm_adapter (~> 0.1)
@@ -458,7 +464,7 @@ DEPENDENCIES
   chosen-rails (= 0.9.8)
   coffee-rails (~> 3.2.2)
   colored
-  database_cleaner
+  database_cleaner!
   devise (~> 2.1.0)
   draper (~> 0.18.0)
   email_spec
diff --git a/features/support/env.rb b/features/support/env.rb
index a30b357718e4d11dc4c6be3bdf0c5d5a306ac48c..38fcc5ad092e60abf51b3704c8119e2e4853f193 100644
--- a/features/support/env.rb
+++ b/features/support/env.rb
@@ -36,8 +36,6 @@ Spinach.hooks.before_scenario do
   Gitlab.config.stub(git_base_path: Rails.root.join('tmp', 'test-git-base-path'))
   FileUtils.rm_rf Gitlab.config.git_base_path
   FileUtils.mkdir_p Gitlab.config.git_base_path
-
-  DatabaseCleaner.start
 end
 
 Spinach.hooks.after_scenario do
diff --git a/spec/requests/issues_spec.rb b/spec/requests/issues_spec.rb
index a4b026862effa9e43ea9b011387eaa4efd55e9a5..e5ecb9590f8d271472897feb569c49ea9f1a73d1 100644
--- a/spec/requests/issues_spec.rb
+++ b/spec/requests/issues_spec.rb
@@ -91,13 +91,13 @@ describe "Issues" do
                title: title)
       end
 
-      issue = Issue.first # with title 'foobar'
-      issue.milestone = create(:milestone, project: project)
-      issue.assignee = nil
-      issue.save
+      @issue = Issue.first # with title 'foobar'
+      @issue.milestone = create(:milestone, project: project)
+      @issue.assignee = nil
+      @issue.save
     end
 
-    let(:issue) { Issue.first }
+    let(:issue) { @issue }
 
     it "should allow filtering by issues with no specified milestone" do
       visit project_issues_path(project, milestone_id: '0')