diff options
author | Robert Speicher <rspeicher@gmail.com> | 2016-02-01 21:29:37 -0500 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2016-02-02 17:59:09 -0500 |
commit | 4105f292e1c9d9c9416914fcd41f9c982b4a80fb (patch) | |
tree | ceb1b2943b15b28588350b9e5619dc10c45c4375 /lib | |
parent | c4c919e59ded2fbf29dc3085b6621e02c0b10f54 (diff) | |
download | gitlab-ce-4105f292e1c9d9c9416914fcd41f9c982b4a80fb.tar.gz |
Display database type and version in Administration dashboardrs-database-info
Closes #12900
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 |