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.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Mehmet Emin INAC