Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:gitlab_archlinux_-_upgrade_update

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:gitlab_archlinux_-_upgrade_update [2024/03/23 18:19] – [GitLab: Datenbank update] klaustachtler:gitlab_archlinux_-_upgrade_update [2024/03/23 19:00] (aktuell) – [GitLab: Dienste/Daemons starten] klaus
Zeile 128: Zeile 128:
 Der nachfolgende Befehl, führt dann das **Upgrade/Update** der [[https://www.postgresql.org/|PostgreSQL]]-Datenbank von [[https://gitlab.com/|GitLab]] aus: Der nachfolgende Befehl, führt dann das **Upgrade/Update** der [[https://www.postgresql.org/|PostgreSQL]]-Datenbank von [[https://gitlab.com/|GitLab]] aus:
 <code> <code>
 +# sudo -u gitlab $(cat environment | xargs) bundle exec rake db:migrate RAILS_ENV=production
 +</code>
 +++++ Migrationsverlauf |
 +<code>
 +# sudo -u gitlab $(cat environment | xargs) bundle exec rake db:migrate RAILS_ENV=production
 +main: == [advisory_lock_connection] object_id: 52860, pg_backend_pid: 4771
 +main: == 20231220225325 AddAsciidocMaxIncludesSetting: migrating ====================
 +main: -- add_column(:application_settings, :asciidoc_max_includes, :smallint, {:default=>32, :null=>false})
 +main:    -> 0.0058s
 +main: == 20231220225325 AddAsciidocMaxIncludesSetting: migrated (0.0145s) ===========
  
 +main: == 20240110064826 AddColorModeIdToUsers: migrating ============================
 +main: -- add_column(:users, :color_mode_id, :smallint, {:default=>1, :null=>false, :if_not_exists=>true})
 +main:    -> 0.0268s
 +main: == 20240110064826 AddColorModeIdToUsers: migrated (0.0339s) ===================
 +
 +main: == 20240110160643 AddOptionalMetricsEnabledToApplicationSettings: migrating ===
 +main: -- add_column(:application_settings, :include_optional_metrics_in_service_ping, :boolean, {:default=>true, :null=>false})
 +main:    -> 0.0037s
 +main: == 20240110160643 AddOptionalMetricsEnabledToApplicationSettings: migrated (0.0101s) 
 +
 +main: == 20240110160816 UpdateOptionaMetricsValueServicePing: migrating =============
 +main: -- execute("UPDATE application_settings\nSET include_optional_metrics_in_service_ping = usage_ping_enabled\n")
 +main:    -> 0.0025s
 +main: == 20240110160816 UpdateOptionaMetricsValueServicePing: migrated (0.0089s) ====
 +
 +main: == 20240113071052 QueuePopulateTopicsSlugColumn: migrating ====================
 +main: == 20240113071052 QueuePopulateTopicsSlugColumn: migrated (0.1127s) ===========
 +
 +main: == 20240123045637 AddTempBackfillIndexToUsersOnIdForDarkThemeIds: migrating ===
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0013s
 +main: -- index_exists?(:users, :id, {:name=>"temp_index_on_users_where_dark_theme", :where=>"theme_id = 11", :algorithm=>:concurrently})
 +main:    -> 0.0186s
 +main: -- add_index(:users, :id, {:name=>"temp_index_on_users_where_dark_theme", :where=>"theme_id = 11", :algorithm=>:concurrently})
 +main:    -> 0.0072s
 +main: == 20240123045637 AddTempBackfillIndexToUsersOnIdForDarkThemeIds: migrated (0.0501s) 
 +
 +main: == 20240124043507 MigrateSidekiqQueuedAndFutureJobs: migrating ================
 +main: == 20240124043507 MigrateSidekiqQueuedAndFutureJobs: migrated (1.1496s) =======
 +
 +main: == 20240129115540 AddZoektTasks: migrating ====================================
 +main: -- create_table(:zoekt_tasks, {:primary_key=>[:id, :partition_id], :options=>"PARTITION BY LIST (partition_id)", :if_not_exists=>true})
 +main:    -> 0.0072s
 +main: == 20240129115540 AddZoektTasks: migrated (0.0128s) ===========================
 +
 +main: == 20240129123433 EnsureIdUniquenessForZoektTasks: migrating ==================
 +main: -- current_schema(nil)
 +main:    -> 0.0005s
 +main: -- change_column_default(:zoekt_tasks, :id, nil)
 +main:    -> 0.0028s
 +main: -- execute("CREATE OR REPLACE FUNCTION assign_zoekt_tasks_id_value()\nRETURNS TRIGGER AS\n$$\nBEGIN\nIF NEW.\"id\" IS NOT NULL THEN\n  RAISE WARNING 'Manually assigning ids is not allowed, the value will be ignored';\nEND IF;\nNEW.\"id\" := nextval('zoekt_tasks_id_seq'::regclass);\nRETURN NEW;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
 +main:    -> 0.0039s
 +main: -- execute("CREATE TRIGGER assign_zoekt_tasks_id_trigger\nBEFORE INSERT ON zoekt_tasks\nFOR EACH ROW\n\nEXECUTE FUNCTION assign_zoekt_tasks_id_value()\n")
 +main:    -> 0.0008s
 +main: == 20240129123433 EnsureIdUniquenessForZoektTasks: migrated (0.0255s) =========
 +
 +main: == 20240130201017 AddExitCodeToBuildsMetadata: migrating ======================
 +main: -- add_column(:p_ci_builds_metadata, :exit_code, :smallint, {:null=>true})
 +main:    -> 0.0019s
 +main: == 20240130201017 AddExitCodeToBuildsMetadata: migrated (0.0086s) =============
 +
 +main: == 20240131100818 DropTmpFindingIndexFromVulnerabilities: migrating ===========
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0013s
 +main: -- indexes(:vulnerabilities)
 +main:    -> 0.0181s
 +main: -- remove_index(:vulnerabilities, {:algorithm=>:concurrently, :name=>"tmp_index_vulnerabilities_on_id_finding_id_empty"})
 +main:    -> 0.0054s
 +main: == 20240131100818 DropTmpFindingIndexFromVulnerabilities: migrated (0.0384s) ==
 +
 +main: == 20240131123824 AddAdminCicdVariablesToMemberRoles: migrating ===============
 +main: -- add_column(:member_roles, :admin_cicd_variables, :boolean, {:default=>false, :null=>false})
 +main:    -> 0.0018s
 +main: == 20240131123824 AddAdminCicdVariablesToMemberRoles: migrated (0.0078s) ======
 +
 +main: == 20240201111204 AddTmpEpicIdColumnToIssues: migrating =======================
 +main: -- add_column(:issues, :tmp_epic_id, :bigint)
 +main:    -> 0.0021s
 +main: == 20240201111204 AddTmpEpicIdColumnToIssues: migrated (0.0079s) ==============
 +
 +main: == 20240201111294 AddIndexOnIssuesTableTmpEpicIdColumn: migrating =============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- index_exists?(:issues, :tmp_epic_id, {:unique=>true, :name=>"tmp_index_issues_on_tmp_epic_id", :algorithm=>:concurrently})
 +main:    -> 0.0286s
 +main: -- add_index(:issues, :tmp_epic_id, {:unique=>true, :name=>"tmp_index_issues_on_tmp_epic_id", :algorithm=>:concurrently})
 +main:    -> 0.0062s
 +main: == 20240201111294 AddIndexOnIssuesTableTmpEpicIdColumn: migrated (0.0512s) ====
 +
 +main: == 20240201112204 AddFkToTmpEpicIdColumnOnIssues: migrating ===================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE issues ADD CONSTRAINT fk_c34dd2b036 FOREIGN KEY (tmp_epic_id) REFERENCES epics (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0015s
 +main: -- execute("ALTER TABLE issues VALIDATE CONSTRAINT fk_c34dd2b036;")
 +main:    -> 0.0045s
 +main: == 20240201112204 AddFkToTmpEpicIdColumnOnIssues: migrated (0.0435s) ==========
 +
 +main: == 20240205105347 RemoveStuckImportWorker: migrating ==========================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240205105347 RemoveStuckImportWorker: migrated (0.0084s) =================
 +
 +main: == 20240205155830 AddPolicyLimitApplicationSetting: migrating =================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- add_column(:application_settings, :security_approval_policies_limit, :integer, {:default=>5, :null=>false, :if_not_exists=>true})
 +main:    -> 0.2627s
 +main: == 20240205155830 AddPolicyLimitApplicationSetting: migrated (0.2844s) ========
 +
 +main: == 20240205215337 CreatePartitionedMergeRequestDiffCommitsCopy: migrating =====
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction(nil)
 +main: -- execute("CREATE TABLE merge_request_diff_commits_b5377a7a34 (\n  LIKE merge_request_diff_commits INCLUDING ALL EXCLUDING INDEXES,\n   merge_request_diff_id_tmp bigint NOT NULL, relative_order_tmp integer NOT NULL,\n  PRIMARY KEY (merge_request_diff_id_tmp, relative_order_tmp)\n) PARTITION BY RANGE (merge_request_diff_id_tmp)\n")
 +main:    -> 0.0017s
 +main: -- remove_column("merge_request_diff_commits_b5377a7a34", "merge_request_diff_id")
 +main:    -> 0.0006s
 +main: -- rename_column("merge_request_diff_commits_b5377a7a34", "merge_request_diff_id_tmp", "merge_request_diff_id")
 +main:    -> 0.0022s
 +main: -- remove_column("merge_request_diff_commits_b5377a7a34", "relative_order")
 +main:    -> 0.0005s
 +main: -- rename_column("merge_request_diff_commits_b5377a7a34", "relative_order_tmp", "relative_order")
 +main:    -> 0.0020s
 +main:    -> 0.0074s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1) TO (200000001)\n")
 +main:    -> 0.0092s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_200000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (200000001) TO (400000001)\n")
 +main:    -> 0.0050s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_400000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (400000001) TO (600000001)\n")
 +main:    -> 0.0065s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_600000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (600000001) TO (800000001)\n")
 +main:    -> 0.0055s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_800000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (800000001) TO (1000000001)\n")
 +main:    -> 0.0052s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1000000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1000000001) TO (1200000001)\n")
 +main:    -> 0.0049s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1200000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1200000001) TO (1400000001)\n")
 +main:    -> 0.0068s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1400000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1400000001) TO (1600000001)\n")
 +main:    -> 0.0054s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1600000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1600000001) TO (1800000001)\n")
 +main:    -> 0.0051s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_1800000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (1800000001) TO (2000000001)\n")
 +main:    -> 0.0062s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_2000000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (2000000001) TO (2200000001)\n")
 +main:    -> 0.0085s
 +main: -- execute("CREATE TABLE gitlab_partitions_dynamic.merge_request_diff_commits_b5377a7a34_2200000001 PARTITION OF merge_request_diff_commits_b5377a7a34\nFOR VALUES FROM (2200000001) TO (2400000001)\n")
 +main:    -> 0.0073s
 +main: -- execute("CREATE  FUNCTION table_sync_function_0992e728d3()\nRETURNS TRIGGER AS\n$$\nBEGIN\nIF (TG_OP = 'DELETE') THEN\n  DELETE FROM merge_request_diff_commits_b5377a7a34 where merge_request_diff_id = OLD.merge_request_diff_id AND relative_order = OLD.relative_order;\nELSIF (TG_OP = 'UPDATE') THEN\n  UPDATE merge_request_diff_commits_b5377a7a34\n  SET authored_date = NEW.authored_date,\n    committed_date = NEW.committed_date,\n    sha = NEW.sha,\n    message = NEW.message,\n    trailers = NEW.trailers,\n    commit_author_id = NEW.commit_author_id,\n    committer_id = NEW.committer_id\n  WHERE merge_request_diff_commits_b5377a7a34.merge_request_diff_id = NEW.merge_request_diff_id AND merge_request_diff_commits_b5377a7a34.relative_order = NEW.relative_order;\nELSIF (TG_OP = 'INSERT') THEN\n  INSERT INTO merge_request_diff_commits_b5377a7a34 (authored_date,\n    committed_date,\n    sha,\n    message,\n    trailers,\n    commit_author_id,\n    committer_id,\n    merge_request_diff_id,\n    relative_order)\n  VALUES (NEW.authored_date,\n    NEW.committed_date,\n    NEW.sha,\n    NEW.message,\n    NEW.trailers,\n    NEW.commit_author_id,\n    NEW.committer_id,\n    NEW.merge_request_diff_id,\n    NEW.relative_order);\nEND IF;\nRETURN NULL;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
 +main:    -> 0.0010s
 +main: -- execute("COMMENT ON FUNCTION table_sync_function_0992e728d3 IS 'Partitioning migration: table sync for merge_request_diff_commits table'")
 +main:    -> 0.0005s
 +main: -- current_schema(nil)
 +main:    -> 0.0003s
 +main: -- execute("CREATE TRIGGER table_sync_trigger_57c8465cd7\nAFTER INSERT OR UPDATE OR DELETE ON merge_request_diff_commits\nFOR EACH ROW\n\nEXECUTE FUNCTION table_sync_function_0992e728d3()\n")
 +main:    -> 0.0005s
 +main: == 20240205215337 CreatePartitionedMergeRequestDiffCommitsCopy: migrated (0.1598s) 
 +
 +main: == 20240206075104 AddOccupiesSeatToMemberRole: migrating ======================
 +main: -- add_column(:member_roles, :occupies_seat, :boolean, {:default=>false, :null=>false})
 +main:    -> 0.0019s
 +main: == 20240206075104 AddOccupiesSeatToMemberRole: migrated (0.0089s) =============
 +
 +main: == 20240206080928 AddIndexToOccupiesSeatOnMemberRole: migrating ===============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0013s
 +main: -- index_exists?(:member_roles, :occupies_seat, {:name=>"index_member_roles_on_occupies_seat", :algorithm=>:concurrently})
 +main:    -> 0.0027s
 +main: -- add_index(:member_roles, :occupies_seat, {:name=>"index_member_roles_on_occupies_seat", :algorithm=>:concurrently})
 +main:    -> 0.0062s
 +main: == 20240206080928 AddIndexToOccupiesSeatOnMemberRole: migrated (0.0276s) ======
 +
 +main: == 20240206095832 AddIndexToNotesWhereNoteableTypeIsNull: migrating ===========
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0014s
 +main: -- index_exists?(:notes, :id, {:name=>"temp_index_on_notes_with_null_noteable_type", :where=>"noteable_type IS NULL", :algorithm=>:concurrently})
 +main:    -> 0.0109s
 +main: -- add_index(:notes, :id, {:name=>"temp_index_on_notes_with_null_noteable_type", :where=>"noteable_type IS NULL", :algorithm=>:concurrently})
 +main:    -> 0.0059s
 +main: == 20240206095832 AddIndexToNotesWhereNoteableTypeIsNull: migrated (0.0324s) ==
 +
 +main: == 20240206115325 AddNodeIdForeignKeyToZoektTasks: migrating ==================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE zoekt_tasks ADD CONSTRAINT fk_rails_51af186590 FOREIGN KEY (zoekt_node_id) REFERENCES zoekt_nodes (id) ON DELETE CASCADE ;")
 +main:    -> 0.0015s
 +main: -- execute("ALTER TABLE zoekt_tasks VALIDATE CONSTRAINT fk_rails_51af186590;")
 +main:    -> 0.0004s
 +main: == 20240206115325 AddNodeIdForeignKeyToZoektTasks: migrated (0.0406s) =========
 +
 +main: == 20240206224725 AddOrganizationIdToDependencyListExports: migrating =========
 +main: -- add_column(:dependency_list_exports, :organization_id, :bigint)
 +main:    -> 0.0014s
 +main: == 20240206224725 AddOrganizationIdToDependencyListExports: migrated (0.0076s) 
 +
 +main: == 20240206225046 IndexOrganizationIdOnDependencyListExports: migrating =======
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0017s
 +main: -- index_exists?(:dependency_list_exports, :organization_id, {:name=>"index_dependency_list_exports_on_organization_id", :algorithm=>:concurrently})
 +main:    -> 0.0046s
 +main: -- add_index(:dependency_list_exports, :organization_id, {:name=>"index_dependency_list_exports_on_organization_id", :algorithm=>:concurrently})
 +main:    -> 0.0066s
 +main: == 20240206225046 IndexOrganizationIdOnDependencyListExports: migrated (0.0290s) 
 +
 +main: == 20240207115842 AddSemVerToCatalogResourcesVersion: migrating ===============
 +main: -- add_column(:catalog_resource_versions, :semver_major, :integer)
 +main:    -> 0.0010s
 +main: -- add_column(:catalog_resource_versions, :semver_minor, :integer)
 +main:    -> 0.0006s
 +main: -- add_column(:catalog_resource_versions, :semver_patch, :integer)
 +main:    -> 0.0008s
 +main: -- add_column(:catalog_resource_versions, :semver_prerelease, :text)
 +main:    -> 0.0034s
 +main: == 20240207115842 AddSemVerToCatalogResourcesVersion: migrated (0.0116s) ======
 +
 +main: == 20240207134321 CreateAuditEventsGroupStreamingEventTypeFilters: migrating ==
 +main: -- create_table(:audit_events_group_streaming_event_type_filters)
 +main: -- quote_column_name(:audit_event_type)
 +main:    -> 0.0000s
 +main:    -> 0.0137s
 +main: == 20240207134321 CreateAuditEventsGroupStreamingEventTypeFilters: migrated (0.0202s) 
 +
 +main: == 20240207193743 AddConditionalUniqueIndexToMemberApprovals: migrating =======
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0012s
 +main: -- index_exists?(:member_approvals, [:member_id, :member_namespace_id, :new_access_level], {:unique=>true, :where=>"status = 0", :name=>"unique_member_approvals_on_pending_status", :algorithm=>:concurrently})
 +main:    -> 0.0061s
 +main: -- add_index(:member_approvals, [:member_id, :member_namespace_id, :new_access_level], {:unique=>true, :where=>"status = 0", :name=>"unique_member_approvals_on_pending_status", :algorithm=>:concurrently})
 +main:    -> 0.0105s
 +main: == 20240207193743 AddConditionalUniqueIndexToMemberApprovals: migrated (0.0379s) 
 +
 +main: == 20240208235322 AddForeignKeyToOrganizationIdOnDependencyListExports: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE organizations, dependency_list_exports IN SHARE ROW EXCLUSIVE MODE")
 +main:    -> 0.0004s
 +main: -- execute("ALTER TABLE dependency_list_exports ADD CONSTRAINT fk_c348f16f10 FOREIGN KEY (organization_id) REFERENCES organizations (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0010s
 +main: -- execute("ALTER TABLE dependency_list_exports VALIDATE CONSTRAINT fk_c348f16f10;")
 +main:    -> 0.0028s
 +main: == 20240208235322 AddForeignKeyToOrganizationIdOnDependencyListExports: migrated (0.0422s) 
 +
 +main: == 20240209153126 AddTmpIndexForSucceededSecurityScans: migrating =============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- index_exists?(:security_scans, :id, {:name=>"tmp_index_for_succeeded_security_scans", :where=>"status = 1", :algorithm=>:concurrently})
 +main:    -> 0.0091s
 +main: -- add_index(:security_scans, :id, {:name=>"tmp_index_for_succeeded_security_scans", :where=>"status = 1", :algorithm=>:concurrently})
 +main:    -> 0.0070s
 +main: == 20240209153126 AddTmpIndexForSucceededSecurityScans: migrated (0.0319s) ====
 +
 +main: == 20240209153920 QueuePurgeSecurityScansWithEmptyFindingData: migrating ======
 +main: == 20240209153920 QueuePurgeSecurityScansWithEmptyFindingData: migrated (0.0064s) 
 +
 +main: == 20240209155253 RemoveColumnsFromApplicationSettings: migrating =============
 +main: -- remove_column(:application_settings, :delayed_project_removal, {:if_exists=>true})
 +main:    -> 0.2650s
 +main: -- remove_column(:application_settings, :lock_delayed_project_removal, {:if_exists=>true})
 +main:    -> 0.2705s
 +main: -- remove_column(:application_settings, :delayed_group_deletion, {:if_exists=>true})
 +main:    -> 0.2815s
 +main: == 20240209155253 RemoveColumnsFromApplicationSettings: migrated (0.8223s) ====
 +
 +main: == 20240209161048 RemoveColumnsFromNamespaceSettings: migrating ===============
 +main: -- remove_column(:namespace_settings, :delayed_project_removal, {:if_exists=>true})
 +main:    -> 0.0050s
 +main: -- remove_column(:namespace_settings, :lock_delayed_project_removal, {:if_exists=>true})
 +main:    -> 0.0053s
 +main: == 20240209161048 RemoveColumnsFromNamespaceSettings: migrated (0.0166s) ======
 +
 +main: == 20240209183815 FinalizeUpdateDelayedProjectRemovalToNull: migrating ========
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240209183815 FinalizeUpdateDelayedProjectRemovalToNull: migrated (0.0114s) 
 +
 +main: == 20240210104125 EnsureMemberRolesNamesUniq: migrating =======================
 +main: -- execute("UPDATE member_roles SET name = CONCAT(name, ' (', id, ')')\nWHERE id IN (\n  SELECT mr.id FROM member_roles mr\n  WHERE EXISTS (SELECT mr_duplicates.id\n    FROM member_roles mr_duplicates\n    WHERE mr_duplicates.name = mr.name\n    AND (\n      mr_duplicates.namespace_id = mr.namespace_id\n      OR (mr_duplicates.namespace_id IS NULL AND mr.namespace_id IS NULL)\n    )\n    AND mr_duplicates.id < mr.id))\n")
 +main:    -> 0.0025s
 +main: == 20240210104125 EnsureMemberRolesNamesUniq: migrated (0.0084s) ==============
 +
 +main: == 20240212023136 PrepareAsyncIndexForBuildsPart4: migrating ==================
 +main: -- index_exists?("public.ci_builds", [:runner_id_convert_to_bigint], {:name=>"index_b4cf879bcf", :where=>"status::text = 'running'::text AND type::text = 'Ci::Build'::text", :algorithm=>:concurrently})
 +main:    -> 0.0244s
 +main: -- add_index_options("public.ci_builds", [:runner_id_convert_to_bigint], {:name=>"index_b4cf879bcf", :where=>"status::text = 'running'::text AND type::text = 'Ci::Build'::text", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: -- index_exists?("public.ci_builds", [:status, :type, :runner_id_convert_to_bigint], {:name=>"index_9f1fa3baee", :algorithm=>:concurrently})
 +main:    -> 0.0210s
 +main: -- add_index_options("public.ci_builds", [:status, :type, :runner_id_convert_to_bigint], {:name=>"index_9f1fa3baee", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: -- index_exists?("public.ci_builds", [:project_id_convert_to_bigint, :id], {:name=>"index_3591adffe4", :algorithm=>:concurrently})
 +main:    -> 0.0213s
 +main: -- add_index_options("public.ci_builds", [:project_id_convert_to_bigint, :id], {:name=>"index_3591adffe4", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: -- index_exists?("gitlab_partitions_dynamic.ci_builds_101", [:runner_id_convert_to_bigint], {:name=>"index_61c5c551d1", :where=>"status::text = 'running'::text AND type::text = 'Ci::Build'::text", :algorithm=>:concurrently})
 +main:    -> 0.0207s
 +main: -- add_index_options("gitlab_partitions_dynamic.ci_builds_101", [:runner_id_convert_to_bigint], {:name=>"index_61c5c551d1", :where=>"status::text = 'running'::text AND type::text = 'Ci::Build'::text", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: -- index_exists?("gitlab_partitions_dynamic.ci_builds_101", [:status, :type, :runner_id_convert_to_bigint], {:name=>"index_a877f193a3", :algorithm=>:concurrently})
 +main:    -> 0.0220s
 +main: -- add_index_options("gitlab_partitions_dynamic.ci_builds_101", [:status, :type, :runner_id_convert_to_bigint], {:name=>"index_a877f193a3", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: -- index_exists?("gitlab_partitions_dynamic.ci_builds_101", [:project_id_convert_to_bigint, :id], {:name=>"index_10eae1e8cf", :algorithm=>:concurrently})
 +main:    -> 0.0207s
 +main: -- add_index_options("gitlab_partitions_dynamic.ci_builds_101", [:project_id_convert_to_bigint, :id], {:name=>"index_10eae1e8cf", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: == 20240212023136 PrepareAsyncIndexForBuildsPart4: migrated (0.2104s) =========
 +
 +main: == 20240212031520 SyncIndexForPCiBuildsPart3: migrating =======================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_name_exists?(:p_ci_builds, "p_ci_builds_resource_group_id_status_commit_id_bigint_idx")
 +main:    -> 0.0014s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_exists?("public.ci_builds", [:resource_group_id, :status, :commit_id_convert_to_bigint], {:name=>"index_bc23fb9243", :where=>"resource_group_id IS NOT NULL", :algorithm=>:concurrently})
 +main:    -> 0.0220s
 +main: -- add_index("public.ci_builds", [:resource_group_id, :status, :commit_id_convert_to_bigint], {:name=>"index_bc23fb9243", :where=>"resource_group_id IS NOT NULL", :algorithm=>:concurrently})
 +main:    -> 0.0076s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_exists?("gitlab_partitions_dynamic.ci_builds_101", [:resource_group_id, :status, :commit_id_convert_to_bigint], {:name=>"index_8de48efee4", :where=>"resource_group_id IS NOT NULL", :algorithm=>:concurrently})
 +main:    -> 0.0234s
 +main: -- add_index("gitlab_partitions_dynamic.ci_builds_101", [:resource_group_id, :status, :commit_id_convert_to_bigint], {:name=>"index_8de48efee4", :where=>"resource_group_id IS NOT NULL", :algorithm=>:concurrently})
 +main:    -> 0.0067s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- add_index(:p_ci_builds, [:resource_group_id, :status, :commit_id_convert_to_bigint], {:name=>"p_ci_builds_resource_group_id_status_commit_id_bigint_idx", :where=>"resource_group_id IS NOT NULL"})
 +main:    -> 0.0017s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_name_exists?(:p_ci_builds, "p_ci_builds_commit_id_bigint_stage_idx_created_at_idx")
 +main:    -> 0.0016s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_exists?("public.ci_builds", [:commit_id_convert_to_bigint, :stage_idx, :created_at], {:name=>"index_d46de3aa4f", :algorithm=>:concurrently})
 +main:    -> 0.0215s
 +main: -- add_index("public.ci_builds", [:commit_id_convert_to_bigint, :stage_idx, :created_at], {:name=>"index_d46de3aa4f", :algorithm=>:concurrently})
 +main:    -> 0.0060s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_exists?("gitlab_partitions_dynamic.ci_builds_101", [:commit_id_convert_to_bigint, :stage_idx, :created_at], {:name=>"index_19fdfdf488", :algorithm=>:concurrently})
 +main:    -> 0.0219s
 +main: -- add_index("gitlab_partitions_dynamic.ci_builds_101", [:commit_id_convert_to_bigint, :stage_idx, :created_at], {:name=>"index_19fdfdf488", :algorithm=>:concurrently})
 +main:    -> 0.0055s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- add_index(:p_ci_builds, [:commit_id_convert_to_bigint, :stage_idx, :created_at], {:name=>"p_ci_builds_commit_id_bigint_stage_idx_created_at_idx"})
 +main:    -> 0.0017s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_name_exists?(:p_ci_builds, "p_ci_builds_runner_id_bigint_id_idx")
 +main:    -> 0.0014s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_exists?("public.ci_builds", [:runner_id_convert_to_bigint, :id], {:name=>"index_adafd086ad", :order=>{:id=>:desc}, :algorithm=>:concurrently})
 +main:    -> 0.0252s
 +main: -- add_index("public.ci_builds", [:runner_id_convert_to_bigint, :id], {:name=>"index_adafd086ad", :order=>{:id=>:desc}, :algorithm=>:concurrently})
 +main:    -> 0.0059s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- index_exists?("gitlab_partitions_dynamic.ci_builds_101", [:runner_id_convert_to_bigint, :id], {:name=>"index_db48796375", :order=>{:id=>:desc}, :algorithm=>:concurrently})
 +main:    -> 0.0230s
 +main: -- add_index("gitlab_partitions_dynamic.ci_builds_101", [:runner_id_convert_to_bigint, :id], {:name=>"index_db48796375", :order=>{:id=>:desc}, :algorithm=>:concurrently})
 +main:    -> 0.0080s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- add_index(:p_ci_builds, [:runner_id_convert_to_bigint, :id], {:name=>"p_ci_builds_runner_id_bigint_id_idx", :order=>{:id=>:desc}})
 +main:    -> 0.0023s
 +main: == 20240212031520 SyncIndexForPCiBuildsPart3: migrated (0.2569s) ==============
 +
 +main: == 20240212031600 AddFkForCommitIdBigintBetweenPCiBuildsAndCiPipelines: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE ci_pipelines, public.ci_builds IN SHARE ROW EXCLUSIVE MODE")
 +main:    -> 0.0005s
 +main: -- execute("ALTER TABLE public.ci_builds ADD CONSTRAINT fk_8d588a7095 FOREIGN KEY (commit_id_convert_to_bigint) REFERENCES ci_pipelines (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0013s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE ci_pipelines, gitlab_partitions_dynamic.ci_builds_101 IN SHARE ROW EXCLUSIVE MODE")
 +main:    -> 0.0006s
 +main: -- execute("ALTER TABLE gitlab_partitions_dynamic.ci_builds_101 ADD CONSTRAINT fk_8d588a7095 FOREIGN KEY (commit_id_convert_to_bigint) REFERENCES ci_pipelines (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0018s
 +main: == 20240212031600 AddFkForCommitIdBigintBetweenPCiBuildsAndCiPipelines: migrated (0.1376s) 
 +
 +main: == 20240212040428 ValidateForeignKeyForUpstreamPipelineIdBetweenPCiBuildsAndCiPipelines: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE public.ci_builds VALIDATE CONSTRAINT fk_6b6c3f3e70;")
 +main:    -> 0.0059s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE ci_pipelines, gitlab_partitions_dynamic.ci_builds_101 IN SHARE ROW EXCLUSIVE MODE")
 +main:    -> 0.0009s
 +main: -- execute("ALTER TABLE gitlab_partitions_dynamic.ci_builds_101 ADD CONSTRAINT fk_6b6c3f3e70 FOREIGN KEY (upstream_pipeline_id_convert_to_bigint) REFERENCES ci_pipelines (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0016s
 +main: -- execute("ALTER TABLE gitlab_partitions_dynamic.ci_builds_101 VALIDATE CONSTRAINT fk_6b6c3f3e70;")
 +main:    -> 0.0034s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE ci_pipelines, p_ci_builds IN ACCESS EXCLUSIVE MODE")
 +main:    -> 0.0007s
 +main: -- execute("ALTER TABLE p_ci_builds ADD CONSTRAINT fk_6b6c3f3e70 FOREIGN KEY (upstream_pipeline_id_convert_to_bigint) REFERENCES ci_pipelines (id) ON DELETE CASCADE ;")
 +main:    -> 0.0030s
 +main: -- execute("ALTER TABLE p_ci_builds VALIDATE CONSTRAINT fk_6b6c3f3e70;")
 +main:    -> 0.0011s
 +main: == 20240212040428 ValidateForeignKeyForUpstreamPipelineIdBetweenPCiBuildsAndCiPipelines: migrated (0.0937s) 
 +
 +main: == 20240212084659 ReplaceCiBuildTraceMetadataCiJobArtifactsForeignKey: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE p_ci_job_artifacts, ci_build_trace_metadata IN SHARE ROW EXCLUSIVE MODE")
 +main:    -> 0.0007s
 +main: -- execute("ALTER TABLE ci_build_trace_metadata ADD CONSTRAINT tmp_fk_21d25cac1a_p FOREIGN KEY (partition_id, trace_artifact_id) REFERENCES p_ci_job_artifacts (partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0018s
 +main: == 20240212084659 ReplaceCiBuildTraceMetadataCiJobArtifactsForeignKey: migrated (0.0535s) 
 +
 +main: == 20240212084743 ReplaceCiJobArtifactStatesForeignKey: migrating =============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0001s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE p_ci_job_artifacts, ci_job_artifact_states IN SHARE ROW EXCLUSIVE MODE")
 +main:    -> 0.0005s
 +main: -- execute("ALTER TABLE ci_job_artifact_states ADD CONSTRAINT tmp_fk_rails_80a9cba3b2_p FOREIGN KEY (partition_id, job_artifact_id) REFERENCES p_ci_job_artifacts (partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0011s
 +main: == 20240212084743 ReplaceCiJobArtifactStatesForeignKey: migrated (0.0484s) ====
 +
 +main: == 20240212092520 EnsureIdUniquenessForPCiJobArtifacts: migrating =============
 +main: -- current_schema(nil)
 +main:    -> 0.0011s
 +main: -- change_column_default(:p_ci_job_artifacts, :id, nil)
 +main:    -> 0.0041s
 +main: -- execute("CREATE OR REPLACE FUNCTION assign_p_ci_job_artifacts_id_value()\nRETURNS TRIGGER AS\n$$\nBEGIN\nIF NEW.\"id\" IS NOT NULL THEN\n  RAISE WARNING 'Manually assigning ids is not allowed, the value will be ignored';\nEND IF;\nNEW.\"id\" := nextval('ci_job_artifacts_id_seq'::regclass);\nRETURN NEW;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
 +main:    -> 0.0006s
 +main: -- execute("CREATE TRIGGER assign_p_ci_job_artifacts_id_trigger\nBEFORE INSERT ON p_ci_job_artifacts\nFOR EACH ROW\n\nEXECUTE FUNCTION assign_p_ci_job_artifacts_id_value()\n")
 +main:    -> 0.0006s
 +main: == 20240212092520 EnsureIdUniquenessForPCiJobArtifacts: migrated (0.0177s) ====
 +
 +main: == 20240212120012 RemoveIndexOnPipelineMetadata: migrating ====================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0010s
 +main: -- indexes(:ci_pipeline_metadata)
 +main:    -> 0.0040s
 +main: -- remove_index(:ci_pipeline_metadata, {:algorithm=>:concurrently, :name=>"index_pipeline_metadata_on_pipeline_id_name_text_pattern"})
 +main:    -> 0.0042s
 +main: == 20240212120012 RemoveIndexOnPipelineMetadata: migrated (0.0231s) ===========
 +
 +main: == 20240212155716 AddViolationDataToScanResultPolicyViolations: migrating =====
 +main: -- add_column(:scan_result_policy_violations, :violation_data, :jsonb, {:null=>true})
 +main:    -> 0.0034s
 +main: == 20240212155716 AddViolationDataToScanResultPolicyViolations: migrated (0.0088s) 
 +
 +main: == 20240212170304 AddAncestorsColumnToSbomOccurrences: migrating ==============
 +main: -- add_column(:sbom_occurrences, :ancestors, :jsonb, {:default=>[], :null=>false})
 +main:    -> 0.0023s
 +main: == 20240212170304 AddAncestorsColumnToSbomOccurrences: migrated (0.0085s) =====
 +
 +main: == 20240212172655 SelfHostedSentNotificationsCleanup: migrating ===============
 +main: -- column_exists?("sent_notifications", "id_convert_to_bigint")
 +main:    -> 0.0025s
 +main: == 20240212172655 SelfHostedSentNotificationsCleanup: migrated (0.0076s) ======
 +
 +main: == 20240212200632 RemoveForeignKeysUserInteractedProjects: migrating ==========
 +main: == 20240212200632 RemoveForeignKeysUserInteractedProjects: migrated (0.0049s) =
 +
 +main: == 20240212200947 DropUserInteractedProjectsTable: migrating ==================
 +main: == 20240212200947 DropUserInteractedProjectsTable: migrated (0.0058s) =========
 +
 +main: == 20240212223930 AddArkoseClientApiSettings: migrating =======================
 +main: -- add_column(:application_settings, :encrypted_arkose_labs_client_xid, :binary)
 +main:    -> 0.0015s
 +main: -- add_column(:application_settings, :encrypted_arkose_labs_client_xid_iv, :binary)
 +main:    -> 0.0009s
 +main: -- add_column(:application_settings, :encrypted_arkose_labs_client_secret, :binary)
 +main:    -> 0.0008s
 +main: -- add_column(:application_settings, :encrypted_arkose_labs_client_secret_iv, :binary)
 +main:    -> 0.0009s
 +main: == 20240212223930 AddArkoseClientApiSettings: migrated (0.0098s) ==============
 +
 +main: == 20240213091123 AddTrigramIndexOnNameAndPathForOrganizations: migrating =====
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- index_exists?(:organizations, :name, {:name=>"index_organizations_on_name_trigram", :using=>:gin, :opclass=>{:name=>:gin_trgm_ops}, :algorithm=>:concurrently})
 +main:    -> 0.0029s
 +main: -- add_index(:organizations, :name, {:name=>"index_organizations_on_name_trigram", :using=>:gin, :opclass=>{:name=>:gin_trgm_ops}, :algorithm=>:concurrently})
 +main:    -> 0.0070s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0010s
 +main: -- index_exists?(:organizations, :path, {:name=>"index_organizations_on_path_trigram", :using=>:gin, :opclass=>{:path=>:gin_trgm_ops}, :algorithm=>:concurrently})
 +main:    -> 0.0025s
 +main: -- add_index(:organizations, :path, {:name=>"index_organizations_on_path_trigram", :using=>:gin, :opclass=>{:path=>:gin_trgm_ops}, :algorithm=>:concurrently})
 +main:    -> 0.0037s
 +main: == 20240213091123 AddTrigramIndexOnNameAndPathForOrganizations: migrated (0.0412s) 
 +
 +main: == 20240213113719 AddTextLimitToCatalogResourceVersionsSemverPrerelease: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE catalog_resource_versions\nADD CONSTRAINT check_701bdce47b\nCHECK ( char_length(semver_prerelease) <= 255 )\nNOT VALID;\n")
 +main:    -> 0.0010s
 +main: -- execute("ALTER TABLE catalog_resource_versions VALIDATE CONSTRAINT check_701bdce47b;")
 +main:    -> 0.0015s
 +main: == 20240213113719 AddTextLimitToCatalogResourceVersionsSemverPrerelease: migrated (0.0157s) 
 +
 +main: == 20240213150033 DropProductAnalyticsEventsExperimentalTable: migrating ======
 +main: -- drop_table(:product_analytics_events_experimental, {:if_exists=>true})
 +main:    -> 0.0537s
 +main: == 20240213150033 DropProductAnalyticsEventsExperimentalTable: migrated (0.0591s) 
 +
 +main: == 20240213181406 AddCustomWebhookTemplateToWebHook: migrating ================
 +main: -- add_column(:web_hooks, :custom_webhook_template, :text, {:null=>true})
 +main:    -> 0.0013s
 +main: == 20240213181406 AddCustomWebhookTemplateToWebHook: migrated (0.0076s) =======
 +
 +main: == 20240213181407 AddTextLimitToWebHooksCustomWebhookTemplate: migrating ======
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE web_hooks\nADD CONSTRAINT check_69ef76ee0c\nCHECK ( char_length(custom_webhook_template) <= 4096 )\nNOT VALID;\n")
 +main:    -> 0.0009s
 +main: -- execute("ALTER TABLE web_hooks VALIDATE CONSTRAINT check_69ef76ee0c;")
 +main:    -> 0.0025s
 +main: == 20240213181407 AddTextLimitToWebHooksCustomWebhookTemplate: migrated (0.0178s) 
 +
 +main: == 20240213210124 QueueBackfillDefaultOrganizationUsers: migrating ============
 +main: == 20240213210124 QueueBackfillDefaultOrganizationUsers: migrated (0.0345s) ===
 +
 +main: == 20240213223630 AddDuoFeaturesEnabledCascadingSetting: migrating ============
 +main: -- column_exists?(:namespace_settings, :duo_features_enabled)
 +main:    -> 0.0049s
 +main: -- column_exists?(:namespace_settings, :lock_duo_features_enabled)
 +main:    -> 0.0047s
 +main: -- column_exists?(:application_settings, :duo_features_enabled)
 +main:    -> 0.2774s
 +main: -- column_exists?(:application_settings, :lock_duo_features_enabled)
 +main:    -> 0.2958s
 +main: -- add_column(:namespace_settings, :duo_features_enabled, :boolean, {:default=>nil, :null=>true})
 +main:    -> 0.0019s
 +main: -- add_column(:namespace_settings, :lock_duo_features_enabled, :boolean, {:default=>false, :null=>false})
 +main:    -> 0.0014s
 +main: -- add_column(:application_settings, :duo_features_enabled, :boolean, {:default=>true, :null=>false})
 +main:    -> 0.0020s
 +main: -- add_column(:application_settings, :lock_duo_features_enabled, :boolean, {:default=>false, :null=>false})
 +main:    -> 0.0017s
 +main: == 20240213223630 AddDuoFeaturesEnabledCascadingSetting: migrated (0.5970s) ===
 +
 +main: == 20240214035028 AddFirstAndLatestPipelineIdToVulnerabilityOccurrences: migrating 
 +main: -- add_column(:vulnerability_occurrences, :initial_pipeline_id, :bigint, {:null=>true})
 +main:    -> 0.0015s
 +main: -- add_column(:vulnerability_occurrences, :latest_pipeline_id, :bigint, {:null=>true})
 +main:    -> 0.0009s
 +main: == 20240214035028 AddFirstAndLatestPipelineIdToVulnerabilityOccurrences: migrated (0.0079s) 
 +
 +main: == 20240214132233 AddIndexGroupsOnOrganizationId: migrating ===================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0012s
 +main: -- index_exists?(:namespaces, :organization_id, {:name=>"index_namespaces_on_organization_id_for_groups", :where=>"((type)::text = 'Group'::text)", :algorithm=>:concurrently})
 +main:    -> 0.0176s
 +main: -- add_index(:namespaces, :organization_id, {:name=>"index_namespaces_on_organization_id_for_groups", :where=>"((type)::text = 'Group'::text)", :algorithm=>:concurrently})
 +main:    -> 0.0066s
 +main: == 20240214132233 AddIndexGroupsOnOrganizationId: migrated (0.0402s) ==========
 +
 +main: == 20240214163238 QueueBackfillArchivedAndTraversalIdsToVulnerabilityReads: migrating 
 +main: == 20240214163238 QueueBackfillArchivedAndTraversalIdsToVulnerabilityReads: migrated (0.0317s) 
 +
 +main: == 20240214203242 QueueBackfillSbomOccurrencesTraversalIdsAndArchived: migrating 
 +main: == 20240214203242 QueueBackfillSbomOccurrencesTraversalIdsAndArchived: migrated (0.0336s) 
 +
 +main: == 20240214204757 FinalizeFindingIdMigrations: migrating ======================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240214204757 FinalizeFindingIdMigrations: migrated (0.0185s) =============
 +
 +main: == 20240214204800 DropInvalidVulnerabilitiesGdk: migrating ====================
 +main: == 20240214204800 DropInvalidVulnerabilitiesGdk: migrated (0.0058s) ===========
 +
 +main: == 20240214204805 MakeFindingIdNotNull: migrating =============================
 +main: -- current_schema(nil)
 +main:    -> 0.0004s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE vulnerabilities\nADD CONSTRAINT check_4d8a873f1f\nCHECK ( finding_id IS NOT NULL )\nNOT VALID;\n")
 +main:    -> 0.0007s
 +main: -- execute("ALTER TABLE vulnerabilities VALIDATE CONSTRAINT check_4d8a873f1f;")
 +main:    -> 0.0016s
 +main: == 20240214204805 MakeFindingIdNotNull: migrated (0.0189s) ====================
 +
 +main: == 20240215191658 AddClickHouseToApplicationSettings: migrating ===============
 +main: -- add_column(:application_settings, :clickhouse, :jsonb, {:default=>{}, :null=>false})
 +main:    -> 0.0046s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE application_settings\nADD CONSTRAINT check_application_settings_clickhouse_is_hash\nCHECK ( (jsonb_typeof(clickhouse) = 'object') )\nNOT VALID;\n")
 +main:    -> 0.0013s
 +main: -- execute("ALTER TABLE application_settings VALIDATE CONSTRAINT check_application_settings_clickhouse_is_hash;")
 +main:    -> 0.0022s
 +main: == 20240215191658 AddClickHouseToApplicationSettings: migrated (0.0212s) ======
 +
 +main: == 20240216020102 AddProjectIdToClusterAgentTokens: migrating =================
 +main: -- add_column(:cluster_agent_tokens, :project_id, :bigint)
 +main:    -> 0.0012s
 +main: == 20240216020102 AddProjectIdToClusterAgentTokens: migrated (0.0063s) ========
 +
 +main: == 20240216020103 IndexClusterAgentTokensOnProjectId: migrating ===============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0014s
 +main: -- index_exists?(:cluster_agent_tokens, :project_id, {:name=>"index_cluster_agent_tokens_on_project_id", :algorithm=>:concurrently})
 +main:    -> 0.0037s
 +main: -- add_index(:cluster_agent_tokens, :project_id, {:name=>"index_cluster_agent_tokens_on_project_id", :algorithm=>:concurrently})
 +main:    -> 0.0049s
 +main: == 20240216020103 IndexClusterAgentTokensOnProjectId: migrated (0.0231s) ======
 +
 +main: == 20240216020104 AddClusterAgentTokensProjectIdFk: migrating =================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE cluster_agent_tokens ADD CONSTRAINT fk_64f741f626 FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0016s
 +main: -- execute("ALTER TABLE cluster_agent_tokens VALIDATE CONSTRAINT fk_64f741f626;")
 +main:    -> 0.0046s
 +main: == 20240216020104 AddClusterAgentTokensProjectIdFk: migrated (0.0338s) ========
 +
 +main: == 20240216020105 AddClusterAgentTokensProjectIdNotNull: migrating ============
 +main: -- current_schema(nil)
 +main:    -> 0.0005s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE cluster_agent_tokens\nADD CONSTRAINT check_5aff240050\nCHECK ( project_id IS NOT NULL )\nNOT VALID;\n")
 +main:    -> 0.0007s
 +main: == 20240216020105 AddClusterAgentTokensProjectIdNotNull: migrated (0.0140s) ===
 +
 +main: == 20240216020106 QueueBackfillClusterAgentTokensProjectId: migrating =========
 +main: == 20240216020106 QueueBackfillClusterAgentTokensProjectId: migrated (0.0299s) 
 +
 +main: == 20240216133415 RenameTypeColumnOfGroupExternalStreamingDestination: migrating 
 +main: -- rename_column(:audit_events_group_external_streaming_destinations, :type, :category)
 +main:    -> 0.0030s
 +main: == 20240216133415 RenameTypeColumnOfGroupExternalStreamingDestination: migrated (0.0082s) 
 +
 +main: == 20240216133523 RenameTypeColumnOfInstanceExternalStreamingDestination: migrating 
 +main: -- rename_column(:audit_events_instance_external_streaming_destinations, :type, :category)
 +main:    -> 0.0021s
 +main: == 20240216133523 RenameTypeColumnOfInstanceExternalStreamingDestination: migrated (0.0069s) 
 +
 +main: == 20240219040351 SwapColumnsForAutoCanceledByIdBetweenCiBuildsAndCiPipelines: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- indexes(:p_ci_builds)
 +main:    -> 0.0648s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE ci_pipelines, p_ci_builds IN ACCESS EXCLUSIVE MODE")
 +main:    -> 0.0007s
 +main: -- clear_cache!(nil)
 +main:    -> 0.0000s
 +main: -- quote_table_name(:p_ci_builds)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:auto_canceled_by_id_convert_to_bigint)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:temp_name_for_renaming)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE \"p_ci_builds\"\n  RENAME COLUMN \"auto_canceled_by_id_convert_to_bigint\" TO \"temp_name_for_renaming\"\n")
 +main:    -> 0.0012s
 +main: -- clear_cache!(nil)
 +main:    -> 0.0000s
 +main: -- quote_table_name(:p_ci_builds)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:auto_canceled_by_id)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:auto_canceled_by_id_convert_to_bigint)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE \"p_ci_builds\"\n  RENAME COLUMN \"auto_canceled_by_id\" TO \"auto_canceled_by_id_convert_to_bigint\"\n")
 +main:    -> 0.0006s
 +main: -- clear_cache!(nil)
 +main:    -> 0.0000s
 +main: -- quote_table_name(:p_ci_builds)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:temp_name_for_renaming)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:auto_canceled_by_id)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE \"p_ci_builds\"\n  RENAME COLUMN \"temp_name_for_renaming\" TO \"auto_canceled_by_id\"\n")
 +main:    -> 0.0007s
 +main: -- quote_table_name(:trigger_10ee1357e825)
 +main:    -> 0.0001s
 +main: -- execute("ALTER FUNCTION \"trigger_10ee1357e825\" RESET ALL")
 +main:    -> 0.0004s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE ci_pipelines, p_ci_builds IN ACCESS EXCLUSIVE MODE")
 +main:    -> 0.0005s
 +main: -- remove_foreign_key(:p_ci_builds, :ci_pipelines, {:name=>:fk_a2141b1522})
 +main:    -> 0.0063s
 +main: -- quote_table_name("public.ci_builds")
 +main:    -> 0.0000s
 +main: -- quote_column_name(:fk_dd3c83bdee)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:fk_a2141b1522)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE \"public\".\"ci_builds\"\nRENAME CONSTRAINT \"fk_dd3c83bdee\" TO \"fk_a2141b1522\"\n")
 +main:    -> 0.0007s
 +main: -- quote_table_name("gitlab_partitions_dynamic.ci_builds_101")
 +main:    -> 0.0000s
 +main: -- quote_column_name(:fk_dd3c83bdee)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:fk_a2141b1522)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE \"gitlab_partitions_dynamic\".\"ci_builds_101\"\nRENAME CONSTRAINT \"fk_dd3c83bdee\" TO \"fk_a2141b1522\"\n")
 +main:    -> 0.0006s
 +main: -- quote_table_name(:p_ci_builds)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:fk_dd3c83bdee)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:fk_a2141b1522)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE \"p_ci_builds\"\nRENAME CONSTRAINT \"fk_dd3c83bdee\" TO \"fk_a2141b1522\"\n")
 +main:    -> 0.0005s
 +main: -- indexes(:p_ci_builds)
 +main:    -> 0.0304s
 +main: -- indexes(:p_ci_builds)
 +main:    -> 0.0237s
 +main: -- indexes("public.ci_builds")
 +main:    -> 0.0259s
 +main: -- indexes("public.ci_builds")
 +main:    -> 0.0271s
 +main: -- quote_table_name("public.index_ffe1233676")
 +main:    -> 0.0000s
 +main: -- quote_table_name("temp_b1a20ba0f9")
 +main:    -> 0.0000s
 +main: -- execute("ALTER INDEX \"public\".\"index_ffe1233676\" RENAME TO \"temp_b1a20ba0f9\"")
 +main:    -> 0.0006s
 +main: -- quote_table_name("public.index_ci_builds_on_auto_canceled_by_id")
 +main:    -> 0.0000s
 +main: -- quote_table_name("index_ffe1233676")
 +main:    -> 0.0000s
 +main: -- execute("ALTER INDEX \"public\".\"index_ci_builds_on_auto_canceled_by_id\" RENAME TO \"index_ffe1233676\"")
 +main:    -> 0.0005s
 +main: -- quote_table_name("public.temp_b1a20ba0f9")
 +main:    -> 0.0001s
 +main: -- quote_table_name("index_ci_builds_on_auto_canceled_by_id")
 +main:    -> 0.0000s
 +main: -- execute("ALTER INDEX \"public\".\"temp_b1a20ba0f9\" RENAME TO \"index_ci_builds_on_auto_canceled_by_id\"")
 +main:    -> 0.0003s
 +main: -- indexes("gitlab_partitions_dynamic.ci_builds_101")
 +main:    -> 0.0276s
 +main: -- indexes("gitlab_partitions_dynamic.ci_builds_101")
 +main:    -> 0.0262s
 +main: -- quote_table_name("gitlab_partitions_dynamic.ci_builds_101_auto_canceled_by_id_convert_to_bigint_idx")
 +main:    -> 0.0001s
 +main: -- quote_table_name("temp_60506a0340")
 +main:    -> 0.0001s
 +main: -- execute("ALTER INDEX \"gitlab_partitions_dynamic\".\"ci_builds_101_auto_canceled_by_id_convert_to_bigint_idx\" RENAME TO \"temp_60506a0340\"")
 +main:    -> 0.0009s
 +main: -- quote_table_name("gitlab_partitions_dynamic.ci_builds_101_auto_canceled_by_id_idx")
 +main:    -> 0.0001s
 +main: -- quote_table_name("ci_builds_101_auto_canceled_by_id_convert_to_bigint_idx")
 +main:    -> 0.0000s
 +main: -- execute("ALTER INDEX \"gitlab_partitions_dynamic\".\"ci_builds_101_auto_canceled_by_id_idx\" RENAME TO \"ci_builds_101_auto_canceled_by_id_convert_to_bigint_idx\"")
 +main:    -> 0.0008s
 +main: -- quote_table_name("gitlab_partitions_dynamic.temp_60506a0340")
 +main:    -> 0.0001s
 +main: -- quote_table_name("ci_builds_101_auto_canceled_by_id_idx")
 +main:    -> 0.0000s
 +main: -- execute("ALTER INDEX \"gitlab_partitions_dynamic\".\"temp_60506a0340\" RENAME TO \"ci_builds_101_auto_canceled_by_id_idx\"")
 +main:    -> 0.0010s
 +main: -- quote_table_name("p_ci_builds_auto_canceled_by_id_bigint_idx")
 +main:    -> 0.0000s
 +main: -- quote_table_name("temp_3f76d2212d")
 +main:    -> 0.0000s
 +main: -- execute("ALTER INDEX \"p_ci_builds_auto_canceled_by_id_bigint_idx\" RENAME TO \"temp_3f76d2212d\"")
 +main:    -> 0.0006s
 +main: -- quote_table_name("p_ci_builds_auto_canceled_by_id_idx")
 +main:    -> 0.0000s
 +main: -- quote_table_name(:p_ci_builds_auto_canceled_by_id_bigint_idx)
 +main:    -> 0.0000s
 +main: -- execute("ALTER INDEX \"p_ci_builds_auto_canceled_by_id_idx\" RENAME TO \"p_ci_builds_auto_canceled_by_id_bigint_idx\"")
 +main:    -> 0.0004s
 +main: -- quote_table_name("temp_3f76d2212d")
 +main:    -> 0.0000s
 +main: -- quote_table_name(:p_ci_builds_auto_canceled_by_id_idx)
 +main:    -> 0.0000s
 +main: -- execute("ALTER INDEX \"temp_3f76d2212d\" RENAME TO \"p_ci_builds_auto_canceled_by_id_idx\"")
 +main:    -> 0.0005s
 +main: -- remove_index(:p_ci_builds, {:name=>:p_ci_builds_auto_canceled_by_id_bigint_idx})
 +main:    -> 0.0007s
 +main: == 20240219040351 SwapColumnsForAutoCanceledByIdBetweenCiBuildsAndCiPipelines: migrated (0.3107s) 
 +
 +main: == 20240219043439 CreateRdNamespaceClusterAgentMappingsTable: migrating =======
 +main: -- create_table(:remote_development_namespace_cluster_agent_mappings)
 +main:    -> 0.0063s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0012s
 +main: -- index_exists?(:remote_development_namespace_cluster_agent_mappings, [:namespace_id, :cluster_agent_id], {:unique=>true, :name=>"unique_namespace_cluster_agent_mappings_for_agent_association", :algorithm=>:concurrently})
 +main:    -> 0.0020s
 +main: -- add_index(:remote_development_namespace_cluster_agent_mappings, [:namespace_id, :cluster_agent_id], {:unique=>true, :name=>"unique_namespace_cluster_agent_mappings_for_agent_association", :algorithm=>:concurrently})
 +main:    -> 0.0051s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0010s
 +main: -- index_exists?(:remote_development_namespace_cluster_agent_mappings, :cluster_agent_id, {:name=>"i_namespace_cluster_agent_mappings_on_cluster_agent_id", :algorithm=>:concurrently})
 +main:    -> 0.0044s
 +main: -- add_index(:remote_development_namespace_cluster_agent_mappings, :cluster_agent_id, {:name=>"i_namespace_cluster_agent_mappings_on_cluster_agent_id", :algorithm=>:concurrently})
 +main:    -> 0.0051s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0009s
 +main: -- index_exists?(:remote_development_namespace_cluster_agent_mappings, :creator_id, {:name=>"i_namespace_cluster_agent_mappings_on_creator_id", :algorithm=>:concurrently})
 +main:    -> 0.0034s
 +main: -- add_index(:remote_development_namespace_cluster_agent_mappings, :creator_id, {:name=>"i_namespace_cluster_agent_mappings_on_creator_id", :algorithm=>:concurrently})
 +main:    -> 0.0051s
 +main: == 20240219043439 CreateRdNamespaceClusterAgentMappingsTable: migrated (0.0674s) 
 +
 +main: == 20240219085852 AddPartitioningConstraintForCiStages2: migrating ============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE ci_stages VALIDATE CONSTRAINT partitioning_constraint;")
 +main:    -> 0.0017s
 +main: == 20240219085852 AddPartitioningConstraintForCiStages2: migrated (0.0609s) ===
 +
 +main: == 20240219092326 ValidateFkCiBuildTraceMetadataPCiJobArtifacts: migrating ====
 +main: -- execute("ALTER TABLE ci_build_trace_metadata VALIDATE CONSTRAINT tmp_fk_21d25cac1a_p;")
 +main:    -> 0.0022s
 +main: == 20240219092326 ValidateFkCiBuildTraceMetadataPCiJobArtifacts: migrated (0.0177s) 
 +
 +main: == 20240219092340 ValidateFkCiJobArtifactStatesPCiJobArtifacts: migrating =====
 +main: -- execute("ALTER TABLE ci_job_artifact_states VALIDATE CONSTRAINT tmp_fk_rails_80a9cba3b2_p;")
 +main:    -> 0.0014s
 +main: == 20240219092340 ValidateFkCiJobArtifactStatesPCiJobArtifacts: migrated (0.0168s) 
 +
 +main: == 20240219092714 PartitionCiStagesAddFkToCiPipelines: migrating ==============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("CREATE TABLE IF NOT EXISTS \"p_ci_stages\" (\n    LIKE \"ci_stages\" INCLUDING ALL\n) PARTITION BY LIST(\"partition_id\")\n")
 +main:    -> 0.0038s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- current_schema(nil)
 +main:    -> 0.0007s
 +main: -- execute("ALTER TABLE \"p_ci_stages\"\nATTACH PARTITION ci_stages\nFOR VALUES IN (100,101)\n;\n\nALTER SEQUENCE \"ci_stages_id_seq\" OWNED BY \"p_ci_stages\".\"id\";\n\nALTER TABLE \"p_ci_stages\"\nDROP CONSTRAINT \"partitioning_constraint\"\n")
 +main:    -> 0.0049s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE p_ci_stages ADD CONSTRAINT fk_fb57e6cc56 FOREIGN KEY (pipeline_id) REFERENCES ci_pipelines (id) ON DELETE CASCADE ;")
 +main:    -> 0.0017s
 +main: -- execute("ALTER TABLE p_ci_stages VALIDATE CONSTRAINT fk_fb57e6cc56;")
 +main:    -> 0.0008s
 +main: -- execute("ANALYZE VERBOSE \"p_ci_stages\"\n")
 +INFO:  analyzing "public.p_ci_stages" inheritance tree
 +INFO:  analyzing "public.ci_stages"
 +INFO:  "ci_stages": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows
 +main:    -> 0.0012s
 +main: == 20240219092714 PartitionCiStagesAddFkToCiPipelines: migrated (0.1284s) =====
 +
 +main: == 20240219135417 ReplaceOldFkCiBuildTraceMetadataToCiJobArtifacts: migrating =
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE ci_job_artifacts, ci_build_trace_metadata IN ACCESS EXCLUSIVE MODE")
 +main:    -> 0.0009s
 +main: -- remove_foreign_key(:ci_build_trace_metadata, :ci_job_artifacts, {:name=>:fk_21d25cac1a_p})
 +main:    -> 0.0055s
 +main: -- quote_table_name(:ci_build_trace_metadata)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:tmp_fk_21d25cac1a_p)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:fk_21d25cac1a_p)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE \"ci_build_trace_metadata\"\nRENAME CONSTRAINT \"tmp_fk_21d25cac1a_p\" TO \"fk_21d25cac1a_p\"\n")
 +main:    -> 0.0006s
 +main: == 20240219135417 ReplaceOldFkCiBuildTraceMetadataToCiJobArtifacts: migrated (0.0319s) 
 +
 +main: == 20240219135601 UpdatePypiMetadataKeywordsCheckConstraint: migrating ========
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE packages_pypi_metadata\nADD CONSTRAINT check_222e4f5b58\nCHECK ( char_length(keywords) <= 1024 )\nNOT VALID;\n")
 +main:    -> 0.0009s
 +main: -- execute("ALTER TABLE packages_pypi_metadata VALIDATE CONSTRAINT check_222e4f5b58;")
 +main:    -> 0.0019s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("            ALTER TABLE packages_pypi_metadata\n            DROP CONSTRAINT IF EXISTS check_02be2c39af\n")
 +main:    -> 0.0014s
 +main: == 20240219135601 UpdatePypiMetadataKeywordsCheckConstraint: migrated (0.0223s) 
 +
 +main: == 20240219142421 ReplaceOldFkCiJobArtifactStatesToCiJobArtifacts: migrating ==
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE ci_job_artifacts, ci_job_artifact_states IN ACCESS EXCLUSIVE MODE")
 +main:    -> 0.0007s
 +main: -- remove_foreign_key(:ci_job_artifact_states, :ci_job_artifacts, {:name=>:fk_rails_80a9cba3b2_p})
 +main:    -> 0.0044s
 +main: -- quote_table_name(:ci_job_artifact_states)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:tmp_fk_rails_80a9cba3b2_p)
 +main:    -> 0.0000s
 +main: -- quote_column_name(:fk_rails_80a9cba3b2_p)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE \"ci_job_artifact_states\"\nRENAME CONSTRAINT \"tmp_fk_rails_80a9cba3b2_p\" TO \"fk_rails_80a9cba3b2_p\"\n")
 +main:    -> 0.0005s
 +main: == 20240219142421 ReplaceOldFkCiJobArtifactStatesToCiJobArtifacts: migrated (0.0279s) 
 +
 +main: == 20240219143045 AddRemoveGroupToMemberRoles: migrating ======================
 +main: -- add_column(:member_roles, :remove_group, :boolean, {:default=>false, :null=>false})
 +main:    -> 0.0016s
 +main: == 20240219143045 AddRemoveGroupToMemberRoles: migrated (0.0081s) =============
 +
 +main: == 20240220112928 CleanupBigintConversionForSystemNoteMetadata: migrating =====
 +main: -- remove_column(:system_note_metadata, "id_convert_to_bigint", {:if_exists=>true})
 +main:    -> 0.0035s
 +main: == 20240220112928 CleanupBigintConversionForSystemNoteMetadata: migrated (0.0119s) 
 +
 +main: == 20240220120303 UnscheduleStuckBulkImportCron: migrating ====================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240220120303 UnscheduleStuckBulkImportCron: migrated (0.0079s) ===========
 +
 +main: == 20240221100732 RemoveBuildHooksWorker: migrating ===========================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240221100732 RemoveBuildHooksWorker: migrated (0.0068s) ==================
 +
 +main: == 20240221100733 AddIndexOnUpdatedAtAndIdToProjectExportJobs: migrating ======
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0012s
 +main: -- index_exists?(:project_export_jobs, [:updated_at, :id], {:name=>"index_project_export_jobs_on_updated_at_and_id", :algorithm=>:concurrently})
 +main:    -> 0.0059s
 +main: -- add_index(:project_export_jobs, [:updated_at, :id], {:name=>"index_project_export_jobs_on_updated_at_and_id", :algorithm=>:concurrently})
 +main:    -> 0.0069s
 +main: == 20240221100733 AddIndexOnUpdatedAtAndIdToProjectExportJobs: migrated (0.0273s) 
 +
 +main: == 20240221134504 AddNameUniqueIndexToMemberRoles: migrating ==================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0012s
 +main: -- index_exists?(:member_roles, [:namespace_id, :name], {:name=>"index_member_roles_on_namespace_id_name_unique", :unique=>true, :where=>"namespace_id IS NOT NULL", :algorithm=>:concurrently})
 +main:    -> 0.0032s
 +main: -- add_index(:member_roles, [:namespace_id, :name], {:name=>"index_member_roles_on_namespace_id_name_unique", :unique=>true, :where=>"namespace_id IS NOT NULL", :algorithm=>:concurrently})
 +main:    -> 0.0065s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0008s
 +main: -- index_exists?(:member_roles, [:name], {:name=>"index_member_roles_on_name_unique", :unique=>true, :where=>"namespace_id IS NULL", :algorithm=>:concurrently})
 +main:    -> 0.0046s
 +main: -- add_index(:member_roles, [:name], {:name=>"index_member_roles_on_name_unique", :unique=>true, :where=>"namespace_id IS NULL", :algorithm=>:concurrently})
 +main:    -> 0.0061s
 +main: == 20240221134504 AddNameUniqueIndexToMemberRoles: migrated (0.0448s) =========
 +
 +main: == 20240221152300 AddOrganisationToRawUsageData: migrating ====================
 +main: -- add_column(:raw_usage_data, :organization_id, :bigint, {:null=>false, :default=>1})
 +main:    -> 0.0029s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE raw_usage_data ADD CONSTRAINT fk_8e21125854 FOREIGN KEY (organization_id) REFERENCES organizations (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0011s
 +main: -- execute("ALTER TABLE raw_usage_data VALIDATE CONSTRAINT fk_8e21125854;")
 +main:    -> 0.0050s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0012s
 +main: -- index_exists?(:raw_usage_data, :organization_id, {:name=>"index_raw_usage_data_on_organization_id", :algorithm=>:concurrently})
 +main:    -> 0.0028s
 +main: -- add_index(:raw_usage_data, :organization_id, {:name=>"index_raw_usage_data_on_organization_id", :algorithm=>:concurrently})
 +main:    -> 0.0060s
 +main: == 20240221152300 AddOrganisationToRawUsageData: migrated (0.0637s) ===========
 +
 +main: == 20240221200754 ChangeDeploymentApprovalsIndex: migrating ===================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0013s
 +main: -- index_exists?(:deployment_approvals, [:deployment_id, :user_id, :approval_rule_id], {:name=>"index_deployment_approvals_on_deployment_user_approval_rule", :unique=>true, :algorithm=>:concurrently})
 +main:    -> 0.0050s
 +main: -- add_index(:deployment_approvals, [:deployment_id, :user_id, :approval_rule_id], {:name=>"index_deployment_approvals_on_deployment_user_approval_rule", :unique=>true, :algorithm=>:concurrently})
 +main:    -> 0.0058s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0009s
 +main: -- index_exists?(:deployment_approvals, [:deployment_id, :user_id], {:name=>"index_deployment_approvals_on_deployment_id_and_user_id", :algorithm=>:concurrently})
 +main:    -> 0.0070s
 +main: -- remove_index(:deployment_approvals, {:name=>"index_deployment_approvals_on_deployment_id_and_user_id", :algorithm=>:concurrently, :column=>[:deployment_id, :user_id]})
 +main:    -> 0.0105s
 +main: == 20240221200754 ChangeDeploymentApprovalsIndex: migrated (0.0568s) ==========
 +
 +main: == 20240222000000 RemovePackagesProtectionRulesPackageNamePatternIlikeQueryColumn: migrating 
 +main: -- column_exists?(:packages_protection_rules, :package_name_pattern_ilike_query)
 +main:    -> 0.0026s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- remove_column(:packages_protection_rules, :package_name_pattern_ilike_query)
 +main:    -> 0.0011s
 +main: == 20240222000000 RemovePackagesProtectionRulesPackageNamePatternIlikeQueryColumn: migrated (0.0136s) 
 +
 +main: == 20240222000001 AddNotNullConstraintToHasMergeRequest: migrating ============
 +main: -- current_schema(nil)
 +main:    -> 0.0004s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE vulnerability_reads\nADD CONSTRAINT check_4b1a1bf5ea\nCHECK ( has_merge_request IS NOT NULL )\nNOT VALID;\n")
 +main:    -> 0.0008s
 +main: -- execute("ALTER TABLE vulnerability_reads VALIDATE CONSTRAINT check_4b1a1bf5ea;")
 +main:    -> 0.0014s
 +main: == 20240222000001 AddNotNullConstraintToHasMergeRequest: migrated (0.0202s) ===
 +
 +main: == 20240222000002 FinalizeBackfillVsCodeSettingsUuid: migrating ===============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240222000002 FinalizeBackfillVsCodeSettingsUuid: migrated (0.0136s) ======
 +
 +main: == 20240222000003 RemoveForeignKeyProjectRepositoryStates: migrating ==========
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE projects, project_repository_states IN ACCESS EXCLUSIVE MODE")
 +main:    -> 0.0009s
 +main: -- remove_foreign_key(:project_repository_states, :projects, {:name=>"fk_rails_0f2298ca8a"})
 +main:    -> 0.0047s
 +main: == 20240222000003 RemoveForeignKeyProjectRepositoryStates: migrated (0.0255s) =
 +
 +main: == 20240222000004 DropProjectRepositoryStatesTable: migrating =================
 +main: -- drop_table(:project_repository_states, {:if_exists=>true})
 +main:    -> 0.0071s
 +main: == 20240222000004 DropProjectRepositoryStatesTable: migrated (0.0134s) ========
 +
 +main: == 20240222075046 QueueBackfillUsersColorModeId: migrating ====================
 +main: == 20240222075046 QueueBackfillUsersColorModeId: migrated (0.0360s) ===========
 +
 +main: == 20240222134433 RegenRemoveForeignKeysUserInteractedProjects: migrating =====
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE users, user_interacted_projects IN ACCESS EXCLUSIVE MODE")
 +main:    -> 0.0006s
 +main: -- remove_foreign_key(:user_interacted_projects, :users, {:name=>"fk_0894651f08"})
 +main:    -> 0.0041s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE projects, user_interacted_projects IN ACCESS EXCLUSIVE MODE")
 +main:    -> 0.0008s
 +main: -- remove_foreign_key(:user_interacted_projects, :projects, {:name=>"fk_722ceba4f7"})
 +main:    -> 0.0050s
 +main: == 20240222134433 RegenRemoveForeignKeysUserInteractedProjects: migrated (0.0449s) 
 +
 +main: == 20240222134513 RegenDropUserInteractedProjectsTable: migrating =============
 +main: -- drop_table(:user_interacted_projects, {:if_exists=>true})
 +main:    -> 0.0039s
 +main: == 20240222134513 RegenDropUserInteractedProjectsTable: migrated (0.0097s) ====
 +
 +main: == 20240222142403 RemoveDuplicatedProtectedTagsIndex: migrating ===============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0017s
 +main: -- indexes(:protected_tags)
 +main:    -> 0.0038s
 +main: -- remove_index(:protected_tags, {:algorithm=>:concurrently, :name=>"index_protected_tags_on_project_id"})
 +main:    -> 0.0040s
 +main: == 20240222142403 RemoveDuplicatedProtectedTagsIndex: migrated (0.0237s) ======
 +
 +main: == 20240222143050 RemoveDuplicatedProjectRepositoriesIndex: migrating =========
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0012s
 +main: -- indexes(:project_repositories)
 +main:    -> 0.0051s
 +main: -- remove_index(:project_repositories, {:algorithm=>:concurrently, :name=>"index_project_repositories_on_shard_id"})
 +main:    -> 0.0039s
 +main: == 20240222143050 RemoveDuplicatedProjectRepositoriesIndex: migrated (0.0260s) 
 +
 +main: == 20240222143623 RemoveDuplicatedApprovalsIndex: migrating ===================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- indexes(:approvals)
 +main:    -> 0.0053s
 +main: -- remove_index(:approvals, {:algorithm=>:concurrently, :name=>"index_approvals_on_merge_request_id"})
 +main:    -> 0.0040s
 +main: == 20240222143623 RemoveDuplicatedApprovalsIndex: migrated (0.0235s) ==========
 +
 +main: == 20240222144123 RemoveDuplicatedApprovalProjectRulesUsersIndex: migrating ===
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- indexes(:approval_project_rules_users)
 +main:    -> 0.0043s
 +main: -- remove_index(:approval_project_rules_users, {:algorithm=>:concurrently, :name=>"index_approval_project_rules_users_on_approval_project_rule_id"})
 +main:    -> 0.0047s
 +main: == 20240222144123 RemoveDuplicatedApprovalProjectRulesUsersIndex: migrated (0.0229s) 
 +
 +main: == 20240222212904 AddVisibilityLevelToOrganizations: migrating ================
 +main: -- add_column(:organizations, :visibility_level, :smallint, {:default=>0, :null=>false})
 +main:    -> 0.0018s
 +main: == 20240222212904 AddVisibilityLevelToOrganizations: migrated (0.0074s) =======
 +
 +main: == 20240222214106 SetDefaultOrganizationVisibilityToPublic: migrating =========
 +main: == 20240222214106 SetDefaultOrganizationVisibilityToPublic: migrated (0.0274s) 
 +
 +main: == 20240223033342 UnscheduleOpenAiClearConversationsWorker: migrating =========
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240223033342 UnscheduleOpenAiClearConversationsWorker: migrated (0.0099s) 
 +
 +main: == 20240223130548 QueueUpdateSbomComponentsNameBasedOnPep503: migrating =======
 +main: == 20240223130548 QueueUpdateSbomComponentsNameBasedOnPep503: migrated (0.0337s) 
 +
 +main: == 20240223215727 RemoveNamespaceSettingsThirdPartyAiFeaturesEnabled: migrating 
 +main: -- remove_column(:namespace_settings, :third_party_ai_features_enabled)
 +main:    -> 0.0011s
 +main: == 20240223215727 RemoveNamespaceSettingsThirdPartyAiFeaturesEnabled: migrated (0.0064s) 
 +
 +main: == 20240226043959 AddNamespaceFkToNamespaceClusterAgentMappingsTable: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE remote_development_namespace_cluster_agent_mappings ADD CONSTRAINT fk_0c483ecb9d FOREIGN KEY (namespace_id) REFERENCES namespaces (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0014s
 +main: -- execute("ALTER TABLE remote_development_namespace_cluster_agent_mappings VALIDATE CONSTRAINT fk_0c483ecb9d;")
 +main:    -> 0.0029s
 +main: == 20240226043959 AddNamespaceFkToNamespaceClusterAgentMappingsTable: migrated (0.0324s) 
 +
 +main: == 20240226044028 AddClusterAgentFkToNamespaceClusterAgentMappingsTable: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE remote_development_namespace_cluster_agent_mappings ADD CONSTRAINT fk_be8e9c740f FOREIGN KEY (cluster_agent_id) REFERENCES cluster_agents (id) ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0010s
 +main: -- execute("ALTER TABLE remote_development_namespace_cluster_agent_mappings VALIDATE CONSTRAINT fk_be8e9c740f;")
 +main:    -> 0.0027s
 +main: == 20240226044028 AddClusterAgentFkToNamespaceClusterAgentMappingsTable: migrated (0.0365s) 
 +
 +main: == 20240226044054 AddCreatorIdFkToNamespaceClusterAgentMappingsTable: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE remote_development_namespace_cluster_agent_mappings ADD CONSTRAINT fk_124d8167c5 FOREIGN KEY (creator_id) REFERENCES users (id) ON DELETE SET NULL NOT VALID;")
 +main:    -> 0.0015s
 +main: -- execute("ALTER TABLE remote_development_namespace_cluster_agent_mappings VALIDATE CONSTRAINT fk_124d8167c5;")
 +main:    -> 0.0020s
 +main: == 20240226044054 AddCreatorIdFkToNamespaceClusterAgentMappingsTable: migrated (0.0321s) 
 +
 +main: == 20240226061749 AddAccessTokenEventsToWebHooks: migrating ===================
 +main: -- add_column(:web_hooks, :resource_access_token_events, :boolean, {:null=>false, :default=>false})
 +main:    -> 0.0017s
 +main: == 20240226061749 AddAccessTokenEventsToWebHooks: migrated (0.0088s) ==========
 +
 +main: == 20240226072310 PrepareIndexForInitialAndLatestPipelineIdToVulnerabilityOccurrences: migrating 
 +main: -- index_exists?(:vulnerability_occurrences, :initial_pipeline_id, {:name=>"index_vulnerability_occurrences_on_initial_pipeline_id", :algorithm=>:concurrently})
 +main:    -> 0.0108s
 +main: -- add_index_options(:vulnerability_occurrences, :initial_pipeline_id, {:name=>"index_vulnerability_occurrences_on_initial_pipeline_id", :algorithm=>:concurrently})
 +main:    -> 0.0001s
 +main: -- index_exists?(:vulnerability_occurrences, :latest_pipeline_id, {:name=>"index_vulnerability_occurrences_on_latest_pipeline_id", :algorithm=>:concurrently})
 +main:    -> 0.0136s
 +main: -- add_index_options(:vulnerability_occurrences, :latest_pipeline_id, {:name=>"index_vulnerability_occurrences_on_latest_pipeline_id", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: == 20240226072310 PrepareIndexForInitialAndLatestPipelineIdToVulnerabilityOccurrences: migrated (0.0473s) 
 +
 +main: == 20240226081837 EnsureIdUniquenessForPCiStages: migrating ===================
 +main: -- current_schema(nil)
 +main:    -> 0.0004s
 +main: -- change_column_default(:p_ci_stages, :id, nil)
 +main:    -> 0.0054s
 +main: -- execute("CREATE OR REPLACE FUNCTION assign_p_ci_stages_id_value()\nRETURNS TRIGGER AS\n$$\nBEGIN\nIF NEW.\"id\" IS NOT NULL THEN\n  RAISE WARNING 'Manually assigning ids is not allowed, the value will be ignored';\nEND IF;\nNEW.\"id\" := nextval('ci_stages_id_seq'::regclass);\nRETURN NEW;\n\nEND\n$$ LANGUAGE PLPGSQL\n")
 +main:    -> 0.0013s
 +main: -- execute("CREATE TRIGGER assign_p_ci_stages_id_trigger\nBEFORE INSERT ON p_ci_stages\nFOR EACH ROW\n\nEXECUTE FUNCTION assign_p_ci_stages_id_value()\n")
 +main:    -> 0.0011s
 +main: == 20240226081837 EnsureIdUniquenessForPCiStages: migrated (0.0202s) ==========
 +
 +main: == 20240226094324 AddIndexForInitialAndLatestPipelineIdToVulnerabilityOccurrences: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- index_exists?(:vulnerability_occurrences, :initial_pipeline_id, {:name=>"index_vulnerability_occurrences_on_initial_pipeline_id", :algorithm=>:concurrently})
 +main:    -> 0.0080s
 +main: -- add_index(:vulnerability_occurrences, :initial_pipeline_id, {:name=>"index_vulnerability_occurrences_on_initial_pipeline_id", :algorithm=>:concurrently})
 +main:    -> 0.0069s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0009s
 +main: -- index_exists?(:vulnerability_occurrences, :latest_pipeline_id, {:name=>"index_vulnerability_occurrences_on_latest_pipeline_id", :algorithm=>:concurrently})
 +main:    -> 0.0082s
 +main: -- add_index(:vulnerability_occurrences, :latest_pipeline_id, {:name=>"index_vulnerability_occurrences_on_latest_pipeline_id", :algorithm=>:concurrently})
 +main:    -> 0.0068s
 +main: == 20240226094324 AddIndexForInitialAndLatestPipelineIdToVulnerabilityOccurrences: migrated (0.0607s) 
 +
 +main: == 20240226102153 RemoveClusterAgentTokensProjectIdNotNull: migrating =========
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("            ALTER TABLE cluster_agent_tokens\n            DROP CONSTRAINT IF EXISTS check_5aff240050\n")
 +main:    -> 0.0006s
 +main: == 20240226102153 RemoveClusterAgentTokensProjectIdNotNull: migrated (0.0087s) 
 +
 +main: == 20240226124436 AllowNullForMemberIdAndOldAccessLevelInMemberApprovals: migrating 
 +main: -- change_column_null(:member_approvals, :member_id, true)
 +main:    -> 0.0013s
 +main: -- change_column_null(:member_approvals, :old_access_level, true)
 +main:    -> 0.0012s
 +main: == 20240226124436 AllowNullForMemberIdAndOldAccessLevelInMemberApprovals: migrated (0.0090s) 
 +
 +main: == 20240226124502 AddUserIdToMemberApprovals: migrating =======================
 +main: -- add_column(:member_approvals, :user_id, :bigint, {:null=>false})
 +main:    -> 0.0018s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0012s
 +main: -- index_exists?(:member_approvals, :user_id, {:algorithm=>:concurrently})
 +main:    -> 0.0057s
 +main: -- add_index(:member_approvals, :user_id, {:algorithm=>:concurrently})
 +main:    -> 0.0060s
 +main: -- index_name(:member_approvals, :user_id)
 +main:    -> 0.0000s
 +main: == 20240226124502 AddUserIdToMemberApprovals: migrated (0.0303s) ==============
 +
 +main: == 20240226124539 UpdateIndexesOnMemberApprovals: migrating ===================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- indexes(:member_approvals)
 +main:    -> 0.0061s
 +main: -- remove_index(:member_approvals, {:algorithm=>:concurrently, :name=>"unique_member_approvals_on_pending_status"})
 +main:    -> 0.0042s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- index_exists?(:member_approvals, [:user_id, :member_namespace_id, :new_access_level], {:unique=>true, :where=>"status = 0", :name=>"unique_idx_member_approvals_on_pending_status", :algorithm=>:concurrently})
 +main:    -> 0.0064s
 +main: -- add_index(:member_approvals, [:user_id, :member_namespace_id, :new_access_level], {:unique=>true, :where=>"status = 0", :name=>"unique_idx_member_approvals_on_pending_status", :algorithm=>:concurrently})
 +main:    -> 0.0047s
 +main: == 20240226124539 UpdateIndexesOnMemberApprovals: migrated (0.0466s) ==========
 +
 +main: == 20240226134150 AddMemberRoleIdToMemberApprovals: migrating =================
 +main: -- add_column(:member_approvals, :member_role_id, :bigint)
 +main:    -> 0.0019s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- index_exists?(:member_approvals, :member_role_id, {:algorithm=>:concurrently})
 +main:    -> 0.0077s
 +main: -- add_index(:member_approvals, :member_role_id, {:algorithm=>:concurrently})
 +main:    -> 0.0050s
 +main: -- index_name(:member_approvals, :member_role_id)
 +main:    -> 0.0000s
 +main: == 20240226134150 AddMemberRoleIdToMemberApprovals: migrated (0.0328s) ========
 +
 +main: == 20240226134858 EnforceVsCodeSettingsUuidPresence: migrating ================
 +main: -- current_schema(nil)
 +main:    -> 0.0009s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE vs_code_settings\nADD CONSTRAINT check_4680ca265d\nCHECK ( uuid IS NOT NULL )\nNOT VALID;\n")
 +main:    -> 0.0009s
 +main: -- execute("ALTER TABLE vs_code_settings VALIDATE CONSTRAINT check_4680ca265d;")
 +main:    -> 0.0014s
 +main: == 20240226134858 EnforceVsCodeSettingsUuidPresence: migrated (0.0201s) =======
 +
 +main: == 20240226135122 AddForeignKeyForMemberRoleIdToMemberApprovals: migrating ====
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE member_approvals ADD CONSTRAINT fk_619f381144 FOREIGN KEY (member_role_id) REFERENCES member_roles (id) ON DELETE SET NULL NOT VALID;")
 +main:    -> 0.0011s
 +main: -- execute("ALTER TABLE member_approvals VALIDATE CONSTRAINT fk_619f381144;")
 +main:    -> 0.0021s
 +main: == 20240226135122 AddForeignKeyForMemberRoleIdToMemberApprovals: migrated (0.0329s) 
 +
 +main: == 20240226141402 ReplaceCiBuildsCiStagesForeignKey: migrating ================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE p_ci_stages, public.ci_builds IN SHARE ROW EXCLUSIVE MODE")
 +main:    -> 0.0005s
 +main: -- execute("ALTER TABLE public.ci_builds ADD CONSTRAINT tmp_fk_3a9eaa254d_p FOREIGN KEY (partition_id, stage_id) REFERENCES p_ci_stages (partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0010s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("LOCK TABLE p_ci_stages, gitlab_partitions_dynamic.ci_builds_101 IN SHARE ROW EXCLUSIVE MODE")
 +main:    -> 0.0005s
 +main: -- execute("ALTER TABLE gitlab_partitions_dynamic.ci_builds_101 ADD CONSTRAINT tmp_fk_3a9eaa254d_p FOREIGN KEY (partition_id, stage_id) REFERENCES p_ci_stages (partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;")
 +main:    -> 0.0011s
 +main: == 20240226141402 ReplaceCiBuildsCiStagesForeignKey: migrated (0.1171s) =======
 +
 +main: == 20240226142658 AddTempNotesBackupTable: migrating ==========================
 +main: -- execute("CREATE TABLE IF NOT EXISTS temp_notes_backup (LIKE notes);")
 +main:    -> 0.0035s
 +main: -- execute("ALTER TABLE temp_notes_backup ADD PRIMARY KEY (id);")
 +main:    -> 0.0029s
 +main: == 20240226142658 AddTempNotesBackupTable: migrated (0.0122s) =================
 +
 +main: == 20240226143323 QueueBackupAndRemoveNotesWithNullNoteableType: migrating ====
 +main: == 20240226143323 QueueBackupAndRemoveNotesWithNullNoteableType: migrated (0.0338s) 
 +
 +main: == 20240226174509 QueueBackfillOnboardingStatusStepUrl: migrating =============
 +main: == 20240226174509 QueueBackfillOnboardingStatusStepUrl: migrated (0.0326s) ====
 +
 +main: == 20240226191235 UpdatePipelineTriggersPlanLimits: migrating =================
 +main: == 20240226191235 UpdatePipelineTriggersPlanLimits: migrated (0.0052s) ========
 +
 +main: == 20240227131801 UnscheduleOpenAiClearConvosCron: migrating ==================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240227131801 UnscheduleOpenAiClearConvosCron: migrated (0.0079s) =========
 +
 +main: == 20240227180521 AddProjectKeysToJiraTrackerData: migrating ==================
 +main: -- add_column(:jira_tracker_data, :project_keys, :text, {:array=>true, :default=>[], :null=>false})
 +main:    -> 0.0023s
 +main: == 20240227180521 AddProjectKeysToJiraTrackerData: migrated (0.0084s) =========
 +
 +main: == 20240229223236 AddIndexEnvironmentsNameWithoutType: migrating ==============
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- view_exists?(:postgres_partitions)
 +main:    -> 0.0011s
 +main: -- index_exists?(:environments, "project_id, lower(ltrim(ltrim(name, environment_type), '/')) varchar_pattern_ops, state", {:name=>"index_environments_name_without_type", :algorithm=>:concurrently})
 +main:    -> 0.0100s
 +main: -- add_index(:environments, "project_id, lower(ltrim(ltrim(name, environment_type), '/')) varchar_pattern_ops, state", {:name=>"index_environments_name_without_type", :algorithm=>:concurrently})
 +main:    -> 0.0068s
 +main: == 20240229223236 AddIndexEnvironmentsNameWithoutType: migrated (0.0322s) =====
 +
 +main: == 20240301210341 CreateCatalogResourceComponentUsagesTable: migrating ========
 +main: -- create_table(:p_catalog_resource_component_usages, {:primary_key=>[:id, :used_date], :options=>"PARTITION BY RANGE (used_date)", :if_not_exists=>true})
 +main:    -> 0.0038s
 +main: == 20240301210341 CreateCatalogResourceComponentUsagesTable: migrated (0.0096s) 
 +
 +main: == 20240301210400 AddComponentFkToCatalogResourceComponentUsages: migrating ===
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE p_catalog_resource_component_usages ADD CONSTRAINT fk_rails_e1ba64b7ee FOREIGN KEY (component_id) REFERENCES catalog_resource_components (id) ON DELETE CASCADE ;")
 +main:    -> 0.0012s
 +main: -- execute("ALTER TABLE p_catalog_resource_component_usages VALIDATE CONSTRAINT fk_rails_e1ba64b7ee;")
 +main:    -> 0.0010s
 +main: == 20240301210400 AddComponentFkToCatalogResourceComponentUsages: migrated (0.0395s) 
 +
 +main: == 20240301210420 AddCatalogResourceFkToCatalogResourceComponentUsages: migrating 
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE p_catalog_resource_component_usages ADD CONSTRAINT fk_rails_9430673479 FOREIGN KEY (catalog_resource_id) REFERENCES catalog_resources (id) ON DELETE CASCADE ;")
 +main:    -> 0.0013s
 +main: -- execute("ALTER TABLE p_catalog_resource_component_usages VALIDATE CONSTRAINT fk_rails_9430673479;")
 +main:    -> 0.0005s
 +main: == 20240301210420 AddCatalogResourceFkToCatalogResourceComponentUsages: migrated (0.0403s) 
 +
 +main: == 20240301210440 AddProjectFkToCatalogResourceComponentUsages: migrating =====
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: -- execute("ALTER TABLE p_catalog_resource_component_usages ADD CONSTRAINT fk_rails_0e15a4677f FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE ;")
 +main:    -> 0.0012s
 +main: -- execute("ALTER TABLE p_catalog_resource_component_usages VALIDATE CONSTRAINT fk_rails_0e15a4677f;")
 +main:    -> 0.0005s
 +main: == 20240301210440 AddProjectFkToCatalogResourceComponentUsages: migrated (0.0393s) 
 +
 +main: == 20240304080358 ValidateFkCiBuildsCiStages: migrating =======================
 +main: == 20240304080358 ValidateFkCiBuildsCiStages: migrated (0.0051s) ==============
 +
 +main: == 20240305071829 ReplaceOldFkCiBuildsToCiStages: migrating ===================
 +main: == 20240305071829 ReplaceOldFkCiBuildsToCiStages: migrated (0.0053s) ==========
 +
 +main: == 20240305120551 QueueBackfillHasIssuesForExternalIssueLinks: migrating ======
 +main: == 20240305120551 QueueBackfillHasIssuesForExternalIssueLinks: migrated (0.0306s) 
 +
 +main: == 20240305141243 PrepareIndexOnSbomOccurrencesComponentVersionIdAndTraversalIds: migrating 
 +main: -- index_exists?(:sbom_occurrences, [:component_version_id, :traversal_ids], {:name=>"idx_sbom_occurrences_on_component_version_id_and_traversal_ids", :algorithm=>:concurrently})
 +main:    -> 0.0112s
 +main: -- add_index_options(:sbom_occurrences, [:component_version_id, :traversal_ids], {:name=>"idx_sbom_occurrences_on_component_version_id_and_traversal_ids", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: == 20240305141243 PrepareIndexOnSbomOccurrencesComponentVersionIdAndTraversalIds: migrated (0.0242s) 
 +
 +main: == 20240305141244 PrepareAsyncIndexOnSbomOccurrencesForAggregations: migrating 
 +main: -- index_exists?(:sbom_occurrences, [:traversal_ids, :component_id, :component_version_id], {:name=>"index_sbom_occurrences_for_aggregations", :algorithm=>:concurrently})
 +main:    -> 0.0116s
 +main: -- add_index_options(:sbom_occurrences, [:traversal_ids, :component_id, :component_version_id], {:name=>"index_sbom_occurrences_for_aggregations", :algorithm=>:concurrently})
 +main:    -> 0.0000s
 +main: == 20240305141244 PrepareAsyncIndexOnSbomOccurrencesForAggregations: migrated (0.0228s) 
 +
 +main: == 20240305182005 QueueBackfillCatalogResourceVersionSemVer: migrating ========
 +main: == 20240305182005 QueueBackfillCatalogResourceVersionSemVer: migrated (0.0315s) 
 +
 +main: == 20240306153539 AddNotNullConstraintToVulnerabilityReadsTraversalIds: migrating 
 +main: -- change_column_null(:vulnerability_reads, :traversal_ids, false)
 +main:    -> 0.0018s
 +main: == 20240306153539 AddNotNullConstraintToVulnerabilityReadsTraversalIds: migrated (0.0076s) 
 +
 +main: == 20240311101017 RemoveAutoFixWorkerJobs: migrating ==========================
 +main: -- transaction_open?(nil)
 +main:    -> 0.0000s
 +main: == 20240311101017 RemoveAutoFixWorkerJobs: migrated (0.0082s) =================
 +
 +main: == 20240312205527 RemoveIndexCiPipelineArtifactsOnPipelineId: migrating =======
 +main: -- index_exists?(:ci_pipeline_artifacts, :pipeline_id, {:name=>"index_ci_pipeline_artifacts_on_pipeline_id"})
 +main:    -> 0.0075s
 +main: -- quote_column_name("index_ci_pipeline_artifacts_on_pipeline_id")
 +main:    -> 0.0000s
 +main: == 20240312205527 RemoveIndexCiPipelineArtifactsOnPipelineId: migrated (0.0194s) 
 +
 +main: == [advisory_lock_connection] object_id: 52860, pg_backend_pid: 4771
 </code> </code>
 +++++
 +
 +===== GitLab: Dienste/Daemons starten =====
 +
 +Mit nachfolgendem Befehl wird [[https://gitlab.com/|GitLab]] wieder gestartet.
 +
 +Dieser **systemd**-Befehl bringt die **systemd**-Dienste/Daemons von [[https://gitlab.com/|GitLab]] ggf. auf den neusten Stand.
 +<code>
 +# systemctl daemon-reload
 +</code>
 +
 +Dieser **systemd**-Start beinhaltet auch den Start alle anderen benötigten Komponenten bzw. Dienste/Daemons von [[https://gitlab.com/|GitLab]].
 +
 +<code>
 +# systemctl start gitlab.target
 +</code>
 +
 +Eine Überprüfung, ob der Start des Ziel/Target erfolgreich war, kann mit nachfolgendem Befehl überprüft werden:
 +<code>
 +● gitlab.target - GitLab - Self Hosted Git Management
 +     Loaded: loaded (/usr/lib/systemd/system/gitlab.target; enabled; preset: disabled)
 +     Active: active since Fri 2024-03-22 09:34:35 CET; 30min ago
 +
 +Mar 22 09:34:35 server systemd[1]: Reached target GitLab - Self Hosted Git Management.
 +</code>
 +
tachtler/gitlab_archlinux_-_upgrade_update.1711214355.txt.gz · Zuletzt geändert: 2024/03/23 18:19 von klaus