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:10] klaustachtler:gitlab_archlinux_-_upgrade_update [2024/03/23 19:00] (aktuell) – [GitLab: Dienste/Daemons starten] klaus
Zeile 47: Zeile 47:
 Nachfolgender Befehl führt ein Upgrade/Update der [[https://gitlab.com/|GitLab]]-Installation unter [[https://archlinux.org/|ArchLinux]] durch: Nachfolgender Befehl führt ein Upgrade/Update der [[https://gitlab.com/|GitLab]]-Installation unter [[https://archlinux.org/|ArchLinux]] durch:
 <code> <code>
-# pacman -S gitlab+# pacman --noconfirm -S gitlab 
 +</code>  
 +++++ Installationsverlauf | 
 +<code> 
 +# pacman --noconfirm -S gitlab 
 +resolving dependencies... 
 +looking for conflicting packages... 
 + 
 +Package (1)   Old Version  New Version  Net Change  Download Size 
 + 
 +extra/gitlab  16.9.2-3     16.10.0-1     -9.88 MiB     415.79 MiB 
 + 
 +Total Download Size:    415.79 MiB 
 +Total Installed Size:  1519.49 MiB 
 +Net Upgrade Size:        -9.88 MiB 
 + 
 +:: Retrieving packages... 
 + gitlab-16.10.0-1...   415.8 MiB  13.2 MiB/s 00:32 [######################] 100% 
 +(1/1) checking keys in keyring                     [######################] 100% 
 +(1/1) checking package integrity                   [######################] 100% 
 +(1/1) loading package files                        [######################] 100% 
 +(1/1) checking for file conflicts                  [######################] 100% 
 +(1/1) checking available disk space                [######################] 100% 
 +:: Running pre-transaction hooks... 
 +(1/1) Performing snapper pre snapshots for the following configurations... 
 +==> root: 32 
 +:: Processing package changes... 
 +(1/1) upgrading gitlab                             [######################] 100% 
 +warning: directory permissions differ on /var/lib/gitlab/ 
 +filesystem: 755  package: 750 
 +warning: directory permissions differ on /var/log/gitlab/ 
 +filesystem: 770  package: 755 
 +You should upgrade your database: 
 +$ (cd /usr/share/webapps/gitlab && sudo -u gitlab $(cat environment | xargs) bundle exec rake db:migrate) 
 +Afterwards, restart gitlab-related services: 
 +# systemctl daemon-reload 
 +# systemctl restart gitlab-sidekiq gitlab-puma gitlab-workhorse gitlab-gitaly 
 +:: Running post-transaction hooks... 
 +(1/5) Reloading system manager configuration... 
 +(2/5) Creating temporary files... 
 +(3/5) Arming ConditionNeedsUpdate... 
 +(4/5) Check if daemons need restart after library/binary upgrades 
 + 
 +Running kernel seems to be up-to-date. 
 + 
 +Failed to check for processor microcode upgrades. 
 + 
 +No services need to be restarted. 
 + 
 +No containers need to be restarted. 
 + 
 +No user sessions are running outdated binaries. 
 + 
 +No VM guests are running outdated hypervisor (qemu) binaries on this host. 
 +(5/5) Performing snapper post snapshots for the following configurations... 
 +==> root: 33
 </code> </code>
 +++++
 +
 +
 +:!: **HINWEIS** - **Nachfolgende Hinweise bei der Installation sind zu beachten**:
  
 <code> <code>
-pacman -gitlab+You should upgrade your database: 
 +$ (cd /usr/share/webapps/gitlab && sudo -u gitlab $(cat environment | xargs) bundle exec rake db:migrate) 
 +Afterwards, restart gitlab-related services: 
 +systemctl daemon-reload 
 +# systemctl restart gitlab-sidekiq gitlab-puma gitlab-workhorse gitlab-gitaly 
 +</code> 
 + 
 +===== GitLab: Datenbank update ===== 
 + 
 +Wie bereits beim Upgrade/Update als Hinweis zu lesen war, sollte eine Migration der Datenbank mit Hilfe des nachfolgenden Befehls durchgeführt werden: 
 + 
 +Mit nachfolgendem Befehl **__muss__ zwingend** in das Verzeichnis ''/usr/share/webapps/gitlab'' gewechselt werden: 
 +<code> 
 +# cd /usr/share/webapps/gitlab 
 +</code> 
 + 
 +Der nachfolgende Befehl, führt dann das **Upgrade/Update** der [[https://www.postgresql.org/|PostgreSQL]]-Datenbank von [[https://gitlab.com/|GitLab]] aus: 
 +<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> 
 +++++ 
 + 
 +===== 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> </code>
  
tachtler/gitlab_archlinux_-_upgrade_update.1711213831.txt.gz · Zuletzt geändert: 2024/03/23 18:10 von klaus