summaryrefslogtreecommitdiff
path: root/lib/gitlab/patch/database_config.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/patch/database_config.rb')
-rw-r--r--lib/gitlab/patch/database_config.rb66
1 files changed, 2 insertions, 64 deletions
diff --git a/lib/gitlab/patch/database_config.rb b/lib/gitlab/patch/database_config.rb
index c5c73d50518..20d8f7be8fd 100644
--- a/lib/gitlab/patch/database_config.rb
+++ b/lib/gitlab/patch/database_config.rb
@@ -1,77 +1,15 @@
# frozen_string_literal: true
-# The purpose of this code is to transform legacy `database.yml`
-# into a `database.yml` containing `main:` as a name of a first database
-#
-# This should be removed once all places using legacy `database.yml`
-# are fixed. The likely moment to remove this check is the %14.0.
-#
-# This converts the following syntax:
-#
-# production:
-# adapter: postgresql
-# database: gitlabhq_production
-# username: git
-# password: "secure password"
-# host: localhost
-#
-# Into:
-#
-# production:
-# main:
-# adapter: postgresql
-# database: gitlabhq_production
-# username: git
-# password: "secure password"
-# host: localhost
-#
-
+# The purpose of this code is to set the migrations path
+# for the Geo tracking database.
module Gitlab
module Patch
module DatabaseConfig
extend ActiveSupport::Concern
- def load_database_yaml
- return super unless Gitlab.ee?
-
- super.deep_merge(load_geo_database_yaml)
- end
-
- # This method is taken from Rails to load a database YAML file without
- # evaluating ERB. This allows us to create the rake tasks for the Geo
- # tracking database without filling in the configuration values or
- # loading the environment. To be removed when we start configure Geo
- # tracking database in database.yml instead of custom database_geo.yml
- #
- # https://github.com/rails/rails/blob/v6.1.4/railties/lib/rails/application/configuration.rb#L255
- def load_geo_database_yaml
- path = Rails.root.join("config/database_geo.yml")
- return {} unless File.exist?(path)
-
- require "rails/application/dummy_erb_compiler"
-
- yaml = DummyERB.new(Pathname.new(path).read).result
- config = YAML.load(yaml) || {} # rubocop:disable Security/YAMLLoad
-
- config.to_h do |env, configs|
- # This check is taken from Rails where the transformation
- # of a flat database.yml is done into `primary:`
- # https://github.com/rails/rails/blob/v6.1.4/activerecord/lib/active_record/database_configurations.rb#L169
- if configs.is_a?(Hash) && !configs.all? { |_, v| v.is_a?(Hash) }
- configs = { "geo" => configs }
- end
-
- [env, configs]
- end
- end
-
def database_configuration
super.to_h do |env, configs|
if Gitlab.ee?
- if !configs.key?("geo") && File.exist?(Rails.root.join("config/database_geo.yml"))
- configs["geo"] = Rails.application.config_for(:database_geo).stringify_keys
- end
-
if configs.key?("geo")
migrations_paths = Array(configs["geo"]["migrations_paths"])
migrations_paths << "ee/db/geo/migrate" if migrations_paths.empty?