diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2016-02-04 16:42:22 +0100 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2016-02-04 16:42:22 +0100 |
commit | dfe12649f64bcac76b270a96be04285bbe0c2aa2 (patch) | |
tree | e98dc2bb6d887f8c904a5082748f9f9a5a1bafd3 /lib | |
parent | d9624bb87aa6a1ad505cbb0541489c88ae662e44 (diff) | |
parent | 4105f292e1c9d9c9416914fcd41f9c982b4a80fb (diff) | |
download | gitlab-ce-dfe12649f64bcac76b270a96be04285bbe0c2aa2.tar.gz |
Merge remote-tracking branch 'origin/rs-database-info'
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/database.rb | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/lib/gitlab/database.rb b/lib/gitlab/database.rb index de77a6fbff1..6ebb8027553 100644 --- a/lib/gitlab/database.rb +++ b/lib/gitlab/database.rb @@ -1,16 +1,23 @@ module Gitlab module Database + def self.adapter_name + connection.adapter_name + end + def self.mysql? - ActiveRecord::Base.connection.adapter_name.downcase == 'mysql2' + adapter_name.downcase == 'mysql2' end def self.postgresql? - ActiveRecord::Base.connection.adapter_name.downcase == 'postgresql' + adapter_name.downcase == 'postgresql' + end + + def self.version + database_version.match(/\A(?:PostgreSQL |)([^\s]+).*\z/)[1] end def true_value - case ActiveRecord::Base.connection.adapter_name.downcase - when 'postgresql' + if self.class.postgresql? "'t'" else 1 @@ -18,12 +25,31 @@ module Gitlab end def false_value - case ActiveRecord::Base.connection.adapter_name.downcase - when 'postgresql' + if self.class.postgresql? "'f'" else 0 end end + + private + + def self.connection + ActiveRecord::Base.connection + end + + def self.database_version + row = connection.execute("SELECT VERSION()").first + + if postgresql? + row['version'] + else + row.first + end + end + + def connection + self.class.connection + end end end |