diff --git a/lib/backup/database.rb b/lib/backup/database.rb
index 4bdf6e1c628fac3d45a3c38ece1fdb649fd5aa20..fe0434361e8a84ee144afe99e701f407b2f5fc47 100644
--- a/lib/backup/database.rb
+++ b/lib/backup/database.rb
@@ -6,10 +6,11 @@ module Backup
 
     def initialize
       @config = YAML.load_file(File.join(Rails.root,'config','database.yml'))[Rails.env]
-      @db_file_name = File.join(Gitlab.config.backup.path, 'database.sql.gz')
+      @db_file_name = File.join(Gitlab.config.backup.path, 'db', 'database.sql.gz')
     end
 
     def dump
+      FileUtils.mkdir_p(File.dirname(db_file_name))
       FileUtils.rm_f(db_file_name)
       compress_rd, compress_wr = IO.pipe
       compress_pid = spawn(*%W(gzip -1 -c), in: compress_rd, out: [db_file_name, 'w', 0600])
diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb
index 53e79d4d1f711cd60afa73bb1ddfaf6544c8add1..f011fd03de0b06c001d6b75b85d2ca1ef0bff226 100644
--- a/lib/backup/manager.rb
+++ b/lib/backup/manager.rb
@@ -150,11 +150,11 @@ module Backup
     private
 
     def backup_contents
-      folders_to_backup + ["database.sql.gz", "uploads.tar.gz", "builds.tar.gz", "backup_information.yml"]
+      folders_to_backup + ["uploads.tar.gz", "builds.tar.gz", "backup_information.yml"]
     end
 
     def folders_to_backup
-      folders = %w{repositories}
+      folders = %w{repositories db}
 
       if ENV["SKIP"]
         return folders.reject{ |folder| ENV["SKIP"].include?(folder) }