Files
gitlab-foss/lib/gitlab/database_warnings.rb
2024-04-26 18:13:45 +00:00

63 lines
4.1 KiB
Ruby
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# frozen_string_literal: true
module Gitlab
module DatabaseWarnings
def self.check_postgres_version_and_print_warning
return if Gitlab::Runtime.rails_runner?
Gitlab::Database.database_base_models.each do |name, model|
database = Gitlab::Database::Reflection.new(model)
next if database.postgresql_minimum_supported_version?
Kernel.warn ERB.new(Rainbow.new.wrap(<<~WARNING).red).result
******************************************************************************
You are using PostgreSQL #{database.version} for the #{name} database, but this version of GitLab requires PostgreSQL >= <%= Gitlab::Database::MINIMUM_POSTGRES_VERSION %>.
<% if Rails.env.development? || Rails.env.test? %>
If using gitlab-development-kit, please find the relevant steps here:
https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/postgresql.md#upgrade-postgresql
<% end %>
Please upgrade your environment to a supported PostgreSQL version. See
https://docs.gitlab.com/ee/install/requirements.html#database for details.
******************************************************************************
WARNING
rescue ActiveRecord::ActiveRecordError, PG::Error
# ignore - happens when Rake tasks yet have to create a database, e.g. for testing
end
end
def self.check_single_connection_and_print_warning
return if Gitlab::Runtime.rails_runner?
return unless Gitlab::Database.database_mode == Gitlab::Database::MODE_SINGLE_DATABASE
Kernel.warn ERB.new(Rainbow.new.wrap(<<~WARNING).red).result
******************************************************************************
Your database has a single connection, and single connections were
deprecated in GitLab 15.9 https://docs.gitlab.com/ee/update/deprecations.html#single-database-connection-is-deprecated.
In GitLab 17.0 and later, you must have the two main: and ci: sections in your database.yml.
Please add a :ci section to your database, following these instructions:
https://docs.gitlab.com/ee/install/installation.html#configure-gitlab-db-settings.
******************************************************************************
WARNING
end
end
end
Gitlab::DatabaseWarnings.prepend_mod_with('Gitlab::DatabaseWarnings')