Skip to content

Add group id to dependency list exports

What does this MR do and why?

The dependency_list_exports table will also be used for group resources therefore we are introducing here the group_id column and removing the not null constraint of the project_id column.

The application logic will be introduced later.

Migrations up
main: == [advisory_lock_connection] object_id: 275700, pg_backend_pid: 73398
main: == 20230512141931 AddGroupIdToDependencyListExports: migrating ================
main: -- add_column(:dependency_list_exports, :group_id, :bigint)
main:    -> 0.0049s
main: == 20230512141931 AddGroupIdToDependencyListExports: migrated (0.0132s) =======

main: == 20230512143000 RemoveDependencyListExportsProjectIdNotNullConstraint: migrating
main: -- change_column_null(:dependency_list_exports, :project_id, true)
main:    -> 0.0010s
main: == 20230512143000 RemoveDependencyListExportsProjectIdNotNullConstraint: migrated (0.0039s)

main: == 20230515101208 IndexGroupIdOnDependencyListExports: migrating ==============
main: -- transaction_open?()
main:    -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main:    -> 0.0882s
main: -- index_exists?(:dependency_list_exports, :group_id, {:name=>"index_dependency_list_exports_on_group_id", :algorithm=>:concurrently})
main:    -> 0.0027s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0003s
main: -- add_index(:dependency_list_exports, :group_id, {:name=>"index_dependency_list_exports_on_group_id", :algorithm=>:concurrently})
main:    -> 0.0020s
main: -- execute("RESET statement_timeout")
main:    -> 0.0002s
main: == 20230515101208 IndexGroupIdOnDependencyListExports: migrated (0.1052s) =====

main: == 20230515102353 AddForeignKeyToGroupIdOnDependencyListExports: migrating ====
main: -- transaction_open?()
main:    -> 0.0000s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE dependency_list_exports ADD CONSTRAINT fk_e133f6725e FOREIGN KEY (group_id) REFERENCES namespaces (id) ON DELETE CASCADE NOT VALID;")
main:    -> 0.0015s
main: -- execute("ALTER TABLE dependency_list_exports VALIDATE CONSTRAINT fk_e133f6725e;")
main:    -> 0.0056s
main: == 20230515102353 AddForeignKeyToGroupIdOnDependencyListExports: migrated (0.0382s)

main: == [advisory_lock_connection] object_id: 275700, pg_backend_pid: 73398
ci: == [advisory_lock_connection] object_id: 276120, pg_backend_pid: 73400
ci: == 20230512141931 AddGroupIdToDependencyListExports: migrating ================
ci: -- add_column(:dependency_list_exports, :group_id, :bigint)
ci:    -> 0.0009s
ci: == 20230512141931 AddGroupIdToDependencyListExports: migrated (0.0094s) =======

ci: == 20230512143000 RemoveDependencyListExportsProjectIdNotNullConstraint: migrating
ci: -- change_column_null(:dependency_list_exports, :project_id, true)
ci:    -> 0.0005s
ci: == 20230512143000 RemoveDependencyListExportsProjectIdNotNullConstraint: migrated (0.0085s)

ci: == 20230515101208 IndexGroupIdOnDependencyListExports: migrating ==============
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- view_exists?(:postgres_partitions)
ci:    -> 0.0006s
ci: -- index_exists?(:dependency_list_exports, :group_id, {:name=>"index_dependency_list_exports_on_group_id", :algorithm=>:concurrently})
ci:    -> 0.0025s
ci: -- execute("SET statement_timeout TO 0")
ci:    -> 0.0004s
ci: -- add_index(:dependency_list_exports, :group_id, {:name=>"index_dependency_list_exports_on_group_id", :algorithm=>:concurrently})
ci:    -> 0.0022s
ci: -- execute("RESET statement_timeout")
ci:    -> 0.0004s
ci: == 20230515101208 IndexGroupIdOnDependencyListExports: migrated (0.0202s) =====

ci: == 20230515102353 AddForeignKeyToGroupIdOnDependencyListExports: migrating ====
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- execute("ALTER TABLE dependency_list_exports ADD CONSTRAINT fk_e133f6725e FOREIGN KEY (group_id) REFERENCES namespaces (id) ON DELETE CASCADE NOT VALID;")
ci:    -> 0.0020s
ci: -- execute("ALTER TABLE dependency_list_exports VALIDATE CONSTRAINT fk_e133f6725e;")
ci:    -> 0.0055s
ci: == 20230515102353 AddForeignKeyToGroupIdOnDependencyListExports: migrated (0.0469s)

ci: == [advisory_lock_connection] object_id: 276120, pg_backend_pid: 73400
Migrations down
main: == [advisory_lock_connection] object_id: 275460, pg_backend_pid: 74539
main: == 20230515102353 AddForeignKeyToGroupIdOnDependencyListExports: reverting ====
main: -- remove_foreign_key(:dependency_list_exports, {:column=>:group_id})
main:    -> 0.0041s
main: == 20230515102353 AddForeignKeyToGroupIdOnDependencyListExports: reverted (0.0916s)
main: == [advisory_lock_connection] object_id: 275460, pg_backend_pid: 74539

main: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 75487
main: == 20230515101208 IndexGroupIdOnDependencyListExports: reverting ==============
main: -- transaction_open?()
main:    -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main:    -> 0.0656s
main: -- indexes(:dependency_list_exports)
main:    -> 0.0027s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0002s
main: -- remove_index(:dependency_list_exports, {:algorithm=>:concurrently, :name=>"index_dependency_list_exports_on_group_id"})
main:    -> 0.0017s
main: -- execute("RESET statement_timeout")
main:    -> 0.0003s
main: == 20230515101208 IndexGroupIdOnDependencyListExports: reverted (0.0832s) =====
main: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 75487

main: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 76470
main: == 20230512143000 RemoveDependencyListExportsProjectIdNotNullConstraint: reverting
main: == 20230512143000 RemoveDependencyListExportsProjectIdNotNullConstraint: reverted (0.0038s)
main: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 76470

main: == [advisory_lock_connection] object_id: 275420, pg_backend_pid: 77378
main: == 20230512141931 AddGroupIdToDependencyListExports: reverting ================
main: -- remove_column(:dependency_list_exports, :group_id, :bigint)
main:    -> 0.0014s
main: == 20230512141931 AddGroupIdToDependencyListExports: reverted (0.0062s) =======
main: == [advisory_lock_connection] object_id: 275420, pg_backend_pid: 77378

ci: == [advisory_lock_connection] object_id: 275420, pg_backend_pid: 75084
ci: == 20230515102353 AddForeignKeyToGroupIdOnDependencyListExports: reverting ====
ci: -- remove_foreign_key(:dependency_list_exports, {:column=>:group_id})
ci:    -> 0.0026s
ci: == 20230515102353 AddForeignKeyToGroupIdOnDependencyListExports: reverted (0.0922s)
ci: == [advisory_lock_connection] object_id: 275420, pg_backend_pid: 75084

ci: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 75919
ci: == 20230515101208 IndexGroupIdOnDependencyListExports: reverting ==============
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- view_exists?(:postgres_partitions)
ci:    -> 0.0644s
ci: -- indexes(:dependency_list_exports)
ci:    -> 0.0028s
ci: -- execute("SET statement_timeout TO 0")
ci:    -> 0.0003s
ci: -- remove_index(:dependency_list_exports, {:algorithm=>:concurrently, :name=>"index_dependency_list_exports_on_group_id"})
ci:    -> 0.0018s
ci: -- execute("RESET statement_timeout")
ci:    -> 0.0003s
ci: == 20230515101208 IndexGroupIdOnDependencyListExports: reverted (0.0881s) =====
ci: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 75919

ci: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 76886
ci: == 20230512143000 RemoveDependencyListExportsProjectIdNotNullConstraint: reverting
ci: == 20230512143000 RemoveDependencyListExportsProjectIdNotNullConstraint: reverted (0.0103s)
ci: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 76886

ci: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 77807
ci: == 20230512141931 AddGroupIdToDependencyListExports: reverting ================
ci: -- remove_column(:dependency_list_exports, :group_id, :bigint)
ci:    -> 0.0016s
ci: == 20230512141931 AddGroupIdToDependencyListExports: reverted (0.0127s) =======
ci: == [advisory_lock_connection] object_id: 275400, pg_backend_pid: 77807

Related to Extend dependencies exporter to support group (#408838 - closed).

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Mehmet Emin INAC

Merge request reports