summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2015-10-07 12:30:10 +0200
committerYorick Peterse <yorickpeterse@gmail.com>2015-10-07 23:32:14 +0200
commit85c6a3743abe5683c2317f1957a9f047ad2b4b8e (patch)
treedf5190eeabba1f12024efdb0abc270efc7642167
parentc670f0736648a4dbd558d2f41eea33f773dee3a6 (diff)
downloadgitlab-ce-85c6a3743abe5683c2317f1957a9f047ad2b4b8e.tar.gz
Added methods for detecting MySQL/PostgreSQL
These two methods remove the need for manually going into ActiveRecord::Base.connection all over the place.
-rw-r--r--lib/gitlab/database.rb11
-rw-r--r--spec/lib/gitlab/database_spec.rb17
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/gitlab/database.rb b/lib/gitlab/database.rb
new file mode 100644
index 00000000000..741a52714ac
--- /dev/null
+++ b/lib/gitlab/database.rb
@@ -0,0 +1,11 @@
+module Gitlab
+ module Database
+ def self.mysql?
+ ActiveRecord::Base.connection.adapter_name.downcase == 'mysql'
+ end
+
+ def self.postgresql?
+ ActiveRecord::Base.connection.adapter_name.downcase == 'postgresql'
+ end
+ end
+end
diff --git a/spec/lib/gitlab/database_spec.rb b/spec/lib/gitlab/database_spec.rb
new file mode 100644
index 00000000000..7cdebdf209a
--- /dev/null
+++ b/spec/lib/gitlab/database_spec.rb
@@ -0,0 +1,17 @@
+require 'spec_helper'
+
+describe Gitlab::Database do
+ # These are just simple smoke tests to check if the methods work (regardless
+ # of what they may return).
+ describe '.mysql?' do
+ subject { described_class.mysql? }
+
+ it { is_expected.to satisfy { |val| val == true || val == false } }
+ end
+
+ describe '.postgresql?' do
+ subject { described_class.postgresql? }
+
+ it { is_expected.to satisfy { |val| val == true || val == false } }
+ end
+end