summaryrefslogtreecommitdiff
path: root/lib/gitlab/config_checker/external_database_checker.rb
blob: dfcdbdf39e0f947831317143b5e1831f7682c432 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# frozen_string_literal: true

module Gitlab
  module ConfigChecker
    module ExternalDatabaseChecker
      extend self

      def check
        notices = []

        unless Gitlab::Database.postgresql_minimum_supported_version?
          string_args = {
            pg_version_current: Gitlab::Database.version,
            pg_version_minimum: Gitlab::Database::MINIMUM_POSTGRES_VERSION,
            pg_requirements_url_open: '<a href="https://docs.gitlab.com/ee/install/requirements.html#database">'.html_safe,
            pg_requirements_url_close: '</a>'.html_safe
          }

          notices <<
            {
              type: 'warning',
              message: html_escape(_('You are using PostgreSQL %{pg_version_current}, but PostgreSQL ' \
                         '%{pg_version_minimum} is required for this version of GitLab. ' \
                         'Please upgrade your environment to a supported PostgreSQL version, ' \
                         'see %{pg_requirements_url_open}database requirements%{pg_requirements_url_close} for details.')) % string_args
            }
        end

        if Gitlab::Database.postgresql_upcoming_deprecation? && Gitlab::Database.within_deprecation_notice_window?
          upcoming_deprecation = Gitlab::Database::UPCOMING_POSTGRES_VERSION_DETAILS

          string_args = {
            pg_version_upcoming: upcoming_deprecation[:pg_version_minimum],
            gl_version_upcoming: upcoming_deprecation[:gl_version],
            gl_version_upcoming_date: upcoming_deprecation[:gl_version_date],
            pg_version_upcoming_url_open: "<a href=\"#{upcoming_deprecation[:url]}\">".html_safe,
            pg_version_upcoming_url_close: '</a>'.html_safe
          }

          notices <<
            {
              type: 'warning',
              message: html_escape(_('Note that PostgreSQL %{pg_version_upcoming} will become the minimum required ' \
                         'version in GitLab %{gl_version_upcoming} (%{gl_version_upcoming_date}). Please ' \
                         'consider upgrading your environment to a supported PostgreSQL version soon, ' \
                         'see %{pg_version_upcoming_url_open}the related epic%{pg_version_upcoming_url_close} for details.')) % string_args
            }
        end

        notices
      end
    end
  end
end