Commit 465f4167 authored by Marin Jankovski's avatar Marin Jankovski

Merge branch 'database-fix-setting' into 'master'

Check for database connection when running current_application_settings

The PG connection errors don't always end up being caught as ActiveRecord::NoDatabaseError. So when doing a precompile without the database (like when using the omnibus), an exception was being thrown.

See merge request !292
parents 2fba3189 02d8575a
module Gitlab module Gitlab
module CurrentSettings module CurrentSettings
def current_application_settings def current_application_settings
begin if ActiveRecord::Base.connected? && ActiveRecord::Base.connection.table_exists?('application_settings')
if ActiveRecord::Base.connection.table_exists?('application_settings')
ApplicationSetting.current || ApplicationSetting.current ||
ApplicationSetting.create_from_defaults ApplicationSetting.create_from_defaults
else else
fake_application_settings fake_application_settings
end end
rescue ActiveRecord::NoDatabaseError, database_adapter.constantize::Error
fake_application_settings
end
end end
def fake_application_settings def fake_application_settings
...@@ -22,16 +18,5 @@ module Gitlab ...@@ -22,16 +18,5 @@ module Gitlab
sign_in_text: Settings.extra['sign_in_text'], sign_in_text: Settings.extra['sign_in_text'],
) )
end end
# We need to check which database is setup
# but we cannot assume that the database exists already.
# Not checking this will break "rake gitlab:setup".
def database_adapter
if Rails.configuration.database_configuration[Rails.env]['adapter'] == 'mysql2'
"Mysql2"
else
"PG"
end
end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment