diff --git a/lib/gitlab/database/gitlab_schema.rb b/lib/gitlab/database/gitlab_schema.rb index 52fb75a4a570ca28e0bbaf960d1fbf6d89c7de4f..de993b78c79321489153a06412eaf1b756553aef 100644 --- a/lib/gitlab/database/gitlab_schema.rb +++ b/lib/gitlab/database/gitlab_schema.rb @@ -27,7 +27,6 @@ def self.table_schemas!(tables) # It maps table names prefixes to gitlab_schemas. # The order of keys matter. Prefixes that contain other prefixes should come first. IMPLICIT_GITLAB_SCHEMAS = { - '_test_gitlab_main_clusterwide_' => :gitlab_main_clusterwide, '_test_gitlab_main_cell_' => :gitlab_main_cell, '_test_gitlab_main_org_' => :gitlab_main_org, '_test_gitlab_main_' => :gitlab_main, diff --git a/spec/lib/gitlab/database/bump_sequences_spec.rb b/spec/lib/gitlab/database/bump_sequences_spec.rb index d693cf250d6337af1bb688c0c2bf4d898fc65748..805c0f8be616ff64a8eaf8e00de46e0036b387b7 100644 --- a/spec/lib/gitlab/database/bump_sequences_spec.rb +++ b/spec/lib/gitlab/database/bump_sequences_spec.rb @@ -11,8 +11,8 @@ let!(:ci_sequence_name) { 'ci_build_needs_id_seq' } let!(:main_sequence_name) do - # we cannot fix a specific sequence here as we are in the process of migrating tables to either - # gitlab_main_org or gitlab_main_clusterwide schema. + # we cannot fix a specific sequence here as we are in the process of migrating tables to + # gitlab_main_org schema. # Hence, we try to find any available table belonging to the `gitlab_main` schema, and use it's ID sequence. gitlab_main_tables = Gitlab::Database::GitlabSchema.tables_to_schema.select do |_table_name, schema_name| diff --git a/spec/lib/gitlab/database/gitlab_schema_spec.rb b/spec/lib/gitlab/database/gitlab_schema_spec.rb index 8899d7ec0b8f148875a44f7b281d2305462b9cc8..313d2b650fee3da743187f9ac1ed3bc1219a6009 100644 --- a/spec/lib/gitlab/database/gitlab_schema_spec.rb +++ b/spec/lib/gitlab/database/gitlab_schema_spec.rb @@ -38,7 +38,6 @@ 'audit_events_part_5fc467ac26' | :gitlab_main '_test_gitlab_main_table' | :gitlab_main '_test_gitlab_ci_table' | :gitlab_ci - '_test_gitlab_main_clusterwide_table' | :gitlab_main_clusterwide '_test_gitlab_main_cell_table' | :gitlab_main_cell '_test_gitlab_main_org_table' | :gitlab_main_org '_test_gitlab_pm_table' | :gitlab_pm @@ -191,13 +190,13 @@ end end - context 'gitlab_main_clusterwide and gitlab_main_org allows' do - let!(:gitlab_schemas) { %w[gitlab_main_clusterwide gitlab_main_org] } + context 'gitlab_main_org allows' do + let!(:gitlab_schemas) { %w[gitlab_main_org] } it 'forbids explicit allows on cross joins on individual tables' do # Because we allow cross joins and cross database modifications across # via https://gitlab.com/gitlab-org/gitlab/-/merge_requests/145669 - # on both of these schemas, we should not allow them explicitly on tables anymore + # on gitlab_main_org, we should not allow them explicitly on tables anymore tables = ::Gitlab::Database::Dictionary.entries.select do |entry| gitlab_schemas.include?(entry.gitlab_schema) && @@ -205,13 +204,13 @@ end expect(tables).to be_empty, - "Cross join queries are allowed for all gitlab_main_clusterwide and gitlab_main_org by default" + "Cross join queries are allowed for all gitlab_main_org by default" end it 'forbids explicit allows on cross database modification on individual tables' do # Because we allow cross joins and cross database modifications across # via https://gitlab.com/gitlab-org/gitlab/-/merge_requests/145669 - # on both of these schemas, we should not allow them explicitly on tables anymore + # on gitlab_main_org, we should not allow them explicitly on tables anymore tables = ::Gitlab::Database::Dictionary.entries.select do |entry| gitlab_schemas.include?(entry.gitlab_schema) && @@ -219,7 +218,7 @@ end expect(tables).to be_empty, - "Cross database modifications are allowed for all gitlab_main_clusterwide and gitlab_main_org by default" + "Cross database modifications are allowed for all gitlab_main_org by default" end end end @@ -272,16 +271,16 @@ where(:schemas, :tables, :result) do %i[] | %w[] | true %i[gitlab_main] | %w[evidences] | true - %i[gitlab_main_clusterwide gitlab_main] | %w[users evidences] | true - %i[gitlab_main_clusterwide gitlab_ci] | %w[users ci_pipelines] | false - %i[gitlab_main_clusterwide gitlab_main gitlab_ci] | %w[users evidences ci_pipelines] | false - %i[gitlab_main_clusterwide gitlab_internal] | %w[users schema_migrations] | false + %i[gitlab_main_user gitlab_main] | %w[users evidences] | true + %i[gitlab_main_user gitlab_ci] | %w[users ci_pipelines] | false + %i[gitlab_main_user gitlab_main gitlab_ci] | %w[users evidences ci_pipelines] | false + %i[gitlab_main_user gitlab_internal] | %w[users schema_migrations] | false %i[gitlab_main gitlab_ci] | %w[evidences schema_migrations] | false - %i[gitlab_main_clusterwide gitlab_main gitlab_shared] | %w[users evidences detached_partitions] | true - %i[gitlab_main_clusterwide gitlab_shared] | %w[users detached_partitions] | true - %i[gitlab_main_clusterwide gitlab_main_org] | %w[users namespaces] | true - %i[gitlab_main_clusterwide gitlab_main_org] | %w[plans namespaces] | true - %i[gitlab_main_clusterwide gitlab_main_org] | %w[users achievements] | true + %i[gitlab_main_user gitlab_main gitlab_shared] | %w[users evidences detached_partitions] | true + %i[gitlab_main_user gitlab_shared] | %w[users detached_partitions] | true + %i[gitlab_main_user gitlab_main_org] | %w[users namespaces] | true + %i[gitlab_main gitlab_main_org] | %w[plans namespaces] | true + %i[gitlab_main_user gitlab_main_org] | %w[users achievements] | true end with_them do @@ -293,16 +292,16 @@ where(:schemas, :tables, :result) do %i[] | %w[] | true %i[gitlab_main] | %w[evidences] | true - %i[gitlab_main_clusterwide gitlab_main] | %w[users evidences] | true - %i[gitlab_main_clusterwide gitlab_ci] | %w[users ci_pipelines] | false - %i[gitlab_main_clusterwide gitlab_main gitlab_ci] | %w[users evidences ci_pipelines] | false - %i[gitlab_main_clusterwide gitlab_internal] | %w[users schema_migrations] | true + %i[gitlab_main_user gitlab_main] | %w[users evidences] | true + %i[gitlab_main_user gitlab_ci] | %w[users ci_pipelines] | false + %i[gitlab_main_user gitlab_main gitlab_ci] | %w[users evidences ci_pipelines] | false + %i[gitlab_main_user gitlab_internal] | %w[users schema_migrations] | true %i[gitlab_main gitlab_ci] | %w[evidences ci_pipelines] | false - %i[gitlab_main_clusterwide gitlab_main gitlab_shared] | %w[users evidences detached_partitions] | true - %i[gitlab_main_clusterwide gitlab_shared] | %w[users detached_partitions] | true - %i[gitlab_main_clusterwide gitlab_main_org] | %w[users namespaces] | true - %i[gitlab_main_clusterwide gitlab_main_org] | %w[plans namespaces] | true - %i[gitlab_main_clusterwide gitlab_main_org] | %w[users achievements] | true + %i[gitlab_main_user gitlab_main gitlab_shared] | %w[users evidences detached_partitions] | true + %i[gitlab_main_user gitlab_shared] | %w[users detached_partitions] | true + %i[gitlab_main_user gitlab_main_org] | %w[users namespaces] | true + %i[gitlab_main gitlab_main_org] | %w[plans namespaces] | true + %i[gitlab_main_user gitlab_main_org] | %w[users achievements] | true end with_them do @@ -314,15 +313,15 @@ where(:schemas, :tables, :result) do %i[] | %w[] | false %i[gitlab_main] | %w[evidences] | true - %i[gitlab_main_clusterwide gitlab_main] | %w[users clusters] | true - %i[gitlab_main_clusterwide gitlab_ci] | %w[users ci_pipelines] | false - %i[gitlab_main_clusterwide gitlab_internal] | %w[users schema_migrations] | false + %i[gitlab_main_user gitlab_main] | %w[users clusters] | true + %i[gitlab_main_user gitlab_ci] | %w[users ci_pipelines] | false + %i[gitlab_main_user gitlab_internal] | %w[users schema_migrations] | false %i[gitlab_main gitlab_ci] | %w[evidences ci_pipelines] | false - %i[gitlab_main_clusterwide gitlab_shared] | %w[users detached_partitions] | false - %i[gitlab_main_clusterwide gitlab_main_org] | %w[users namespaces] | false - %i[gitlab_main_clusterwide gitlab_main_org] | %w[plans namespaces] | false - %i[gitlab_main_clusterwide gitlab_main_org] | %w[users achievements] | false - %i[gitlab_main_clusterwide gitlab_main_org] | %w[users agent_group_authorizations] | false + %i[gitlab_main_user gitlab_shared] | %w[users detached_partitions] | false + %i[gitlab_main_user gitlab_main_org] | %w[users namespaces] | true + %i[gitlab_main gitlab_main_org] | %w[plans namespaces] | true + %i[gitlab_main_user gitlab_main_org] | %w[users achievements] | true + %i[gitlab_main_user gitlab_main_org] | %w[users agent_group_authorizations] | true end with_them do diff --git a/spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb b/spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb index d8010b8a9a029e22374c41b28f403c06e7a07376..107a94bfff4ead7e8985247d4d516dda3ab29c8c 100644 --- a/spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb +++ b/spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb @@ -9,7 +9,7 @@ let(:schema_class) { Class.new(Gitlab::Database::Migration[2.1]) } let(:skip_automatic_lock_on_writes) { false } let(:gitlab_main_table_name) { :_test_gitlab_main_table } - let(:gitlab_main_clusterwide_table_name) { :_test_gitlab_main_clusterwide_table } + let(:gitlab_main_user_table_name) { :_test_gitlab_main_user_table } let(:gitlab_main_cell_table_name) { :_test_gitlab_main_cell_table } let(:gitlab_ci_table_name) { :_test_gitlab_ci_table } let(:gitlab_pm_table_name) { :_test_gitlab_pm_table } @@ -28,7 +28,7 @@ # Drop the created test tables, because we use non-transactional tests after do drop_table_if_exists(gitlab_main_table_name) - drop_table_if_exists(gitlab_main_clusterwide_table_name) + drop_table_if_exists(gitlab_main_user_table_name) drop_table_if_exists(gitlab_main_cell_table_name) drop_table_if_exists(gitlab_ci_table_name) drop_table_if_exists(gitlab_geo_table_name) @@ -93,8 +93,8 @@ let(:create_gitlab_main_cell_table_migration_class) { create_table_migration(gitlab_main_cell_table_name) } let(:create_gitlab_ci_table_migration_class) { create_table_migration(gitlab_ci_table_name) } let(:create_gitlab_shared_table_migration_class) { create_table_migration(gitlab_shared_table_name) } - let(:create_gitlab_main_clusterwide_table_migration_class) do - create_table_migration(gitlab_main_clusterwide_table_name) + let(:create_gitlab_main_user_table_migration_class) do + create_table_migration(gitlab_main_user_table_name) end before do @@ -106,7 +106,7 @@ create_gitlab_main_table_migration_class.migrate(:up) create_gitlab_main_cell_table_migration_class.migrate(:up) - create_gitlab_main_clusterwide_table_migration_class.migrate(:up) + create_gitlab_main_user_table_migration_class.migrate(:up) create_gitlab_ci_table_migration_class.migrate(:up) create_gitlab_shared_table_migration_class.migrate(:up) @@ -115,8 +115,8 @@ create_gitlab_main_cell_table_migration_class.connection.execute("DELETE FROM #{gitlab_main_cell_table_name}") create_gitlab_ci_table_migration_class.connection.execute("DELETE FROM #{gitlab_ci_table_name}") create_gitlab_shared_table_migration_class.connection.execute("DELETE FROM #{gitlab_shared_table_name}") - create_gitlab_main_clusterwide_table_migration_class.connection.execute( - "DELETE FROM #{gitlab_main_clusterwide_table_name}" + create_gitlab_main_user_table_migration_class.connection.execute( + "DELETE FROM #{gitlab_main_user_table_name}" ) end.not_to raise_error end @@ -181,8 +181,8 @@ end end - context 'for creating a gitlab_main_clusterwide table' do - let(:table_name) { gitlab_main_clusterwide_table_name } + context 'for creating a gitlab_main_user table' do + let(:table_name) { gitlab_main_user_table_name } it_behaves_like 'does not lock writes on table', Gitlab::Database.database_base_models[:main] it_behaves_like 'locks writes on table', Gitlab::Database.database_base_models[:ci] diff --git a/spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb b/spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb index b0176896a74aa526745d32fb7e84fc1a5465c401..d368004ff15e9b8a9fbb4b04a12f85a57225e34f 100644 --- a/spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb +++ b/spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb @@ -73,7 +73,7 @@ def cross_db_failure_message(column, fk) "Found extra cross-database foreign key #{column} referencing #{fk.to_table} with constraint name #{fk.name}. " \ "When a foreign key references another database you must use a Loose Foreign Key instead https://docs.gitlab.com/ee/development/database/loose_foreign_keys.html." else - # Any FK that references to / from a non-sharded table (e.g. gitlab_main_clusterwide) is not allowed + # Any FK that references to / from a non-sharded table is not allowed "Found extra cross-database foreign key #{column} referencing #{fk.to_table} with constraint name #{fk.name}. " \ "Sharded tables referencing from / to non-sharded tables are not allowed in Cells architecture. " \ "Consult https://docs.gitlab.com/development/cells for possible solutions. " \ diff --git a/spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb b/spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb index 59a6ce663f5fa5a61effbd7cd4c8c2e192e9c5c0..ceb7b07b4b4586c7ae6e1ab13f832ba58e806e48 100644 --- a/spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb +++ b/spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb @@ -16,7 +16,7 @@ expected_allowed_gitlab_schemas: { no_schema: :dml_not_allowed, gitlab_main: :success, - gitlab_main_clusterwide: :success, + gitlab_main_user: :success, gitlab_main_cell: :success, gitlab_main_org: :success, gitlab_ci: :dml_access_denied # cross-schema access @@ -27,7 +27,7 @@ expected_allowed_gitlab_schemas: { no_schema: :dml_not_allowed, gitlab_main: :success, - gitlab_main_clusterwide: :success, + gitlab_main_user: :success, gitlab_main_cell: :success, gitlab_main_org: :success, gitlab_ci: :dml_access_denied # cross-schema access @@ -38,7 +38,7 @@ expected_allowed_gitlab_schemas: { no_schema: :dml_not_allowed, gitlab_main: :success, - gitlab_main_clusterwide: :success, + gitlab_main_user: :success, gitlab_main_cell: :success, gitlab_main_org: :success, gitlab_ci: :dml_access_denied # cross-schema access @@ -49,7 +49,7 @@ expected_allowed_gitlab_schemas: { no_schema: :dml_not_allowed, gitlab_main: :success, - gitlab_main_clusterwide: :success, + gitlab_main_user: :success, gitlab_main_cell: :success, gitlab_main_org: :success, gitlab_ci: :dml_access_denied # cross-schema access diff --git a/spec/lib/gitlab/database/tables_locker_spec.rb b/spec/lib/gitlab/database/tables_locker_spec.rb index 4692d2bd76841d158fd57c123ed6357705737cd9..8392857c65992eb1c036458c9ce809422289439b 100644 --- a/spec/lib/gitlab/database/tables_locker_spec.rb +++ b/spec/lib/gitlab/database/tables_locker_spec.rb @@ -16,7 +16,7 @@ allow(Gitlab::Database::LockWritesManager).to receive(:new).with(any_args).and_return(default_lock_writes_manager) # Limiting the scope of the tests to a subset of the database tables allow(Gitlab::Database::GitlabSchema).to receive(:tables_to_schema).and_return({ - 'application_setttings' => :gitlab_main_clusterwide, + 'application_setttings' => :gitlab_main_user, 'projects' => :gitlab_main, 'zoekt_tasks' => :gitlab_main, 'ci_builds' => :gitlab_ci, @@ -197,7 +197,7 @@ it_behaves_like 'unlock tables', :gitlab_main, 'main' it_behaves_like 'unlock tables', :gitlab_ci, 'main' - it_behaves_like 'unlock tables', :gitlab_main_clusterwide, 'main' + it_behaves_like 'unlock tables', :gitlab_main_user, 'main' it_behaves_like 'unlock tables', :gitlab_shared, 'main' it_behaves_like 'unlock tables', :gitlab_internal, 'main' end @@ -227,9 +227,9 @@ it_behaves_like 'lock tables', :gitlab_ci, 'main' it_behaves_like 'lock tables', :gitlab_main, 'ci' - it_behaves_like 'lock tables', :gitlab_main_clusterwide, 'ci' + it_behaves_like 'lock tables', :gitlab_main_user, 'ci' - it_behaves_like 'unlock tables', :gitlab_main_clusterwide, 'main' + it_behaves_like 'unlock tables', :gitlab_main_user, 'main' it_behaves_like 'unlock tables', :gitlab_main, 'main' it_behaves_like 'unlock tables', :gitlab_ci, 'ci' it_behaves_like 'unlock tables', :gitlab_shared, 'main' @@ -250,7 +250,7 @@ it_behaves_like 'lock tables', :gitlab_ci, 'main' - it_behaves_like 'unlock tables', :gitlab_main_clusterwide, 'main' + it_behaves_like 'unlock tables', :gitlab_main_user, 'main' it_behaves_like 'unlock tables', :gitlab_main, 'main' it_behaves_like 'unlock tables', :gitlab_shared, 'main' it_behaves_like 'unlock tables', :gitlab_internal, 'main' diff --git a/spec/tooling/danger/gitlab_schema_validation_suggestion_spec.rb b/spec/tooling/danger/gitlab_schema_validation_suggestion_spec.rb index 759188176b43d01c669494cc17e17431d5ee185f..f61c7aa449f460a307c64451a29eff671854e985 100644 --- a/spec/tooling/danger/gitlab_schema_validation_suggestion_spec.rb +++ b/spec/tooling/danger/gitlab_schema_validation_suggestion_spec.rb @@ -48,58 +48,6 @@ end end - context 'for discouraging the use of gitlab_main_clusterwide schema' do - let(:schema) { 'gitlab_main_clusterwide' } - - context 'when the file path matches' do - it 'adds the comment' do - expected_comment = "\n#{described_class::SUGGESTION.chomp}" - - expect(gitlab_schema_validation).to receive(:markdown).with(expected_comment, file: filename, line: 10) - - gitlab_schema_validation.add_suggestions_on_using_clusterwide_schema - end - end - - context 'when the file path does not match' do - let(:filename) { 'some_path/application_settings.yml' } - - it_behaves_like 'does not add a comment' - end - - context 'for EE' do - let(:filename) { 'ee/db/docs/application_settings.yml' } - - it_behaves_like 'does not add a comment' - end - - context 'for a deleted table' do - let(:filename) { 'db/docs/deleted_tables/application_settings.yml' } - - it_behaves_like 'does not add a comment' - end - end - - context 'on removing the gitlab_main_clusterwide schema' do - let(:file_diff) do - [ - "+---", - "+table_name: application_settings", - "+classes:", - "+- ApplicationSetting", - "+feature_categories:", - "+- continuous_integration", - "+description: GitLab application settings", - "+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/8589b4e137f50293952923bb07e2814257d7784d", - "+milestone: '7.7'", - "-gitlab_schema: gitlab_main_clusterwide", - "+gitlab_schema: gitlab_main_org" - ] - end - - it_behaves_like 'does not add a comment' - end - context 'when a different schema is added' do let(:schema) { 'gitlab_main' }