update_databases

in files/gitlab-ctl-commands-ee/lib/pgbouncer.rb [41:79]


    def update_databases(original = {})
      rails_databases = attributes.dig('gitlab', 'gitlab_rails', 'databases')&.values
      rails_databases = rails_databases ? rails_databases.uniq : [DEFAULT_RAILS_DATABASE]

      updated = {}

      original = rails_databases.to_h { |db| [db, {}] } if original.empty?

      original.each do |db, settings|
        settings.delete('password')

        updated[db] = ''

        settings['auth_user'] = settings.delete('user') if settings.key?('user')

        is_rails_db = rails_databases.include?(db)

        if db == @database || is_rails_db
          settings['host'] = options['newhost'] if options['newhost']
          settings['port'] = options['port'] if options['port']
          settings['auth_user'] = options['user'] if options['user']

          if is_rails_db
            settings['dbname'] = db
          elsif options['pg_database']
            settings['dbname'] = options['pg_database']
          end
        end

        settings.each do |setting, value|
          updated[db] << " #{setting}=#{value}"
        end

        updated[db].strip!
      end

      updated
    end