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

63 lines
4.1 KiB
Ruby
Raw 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')