Skip to content

Add `package_manager` column to `sbom_occurrences` table

Mehmet Emin INAC requested to merge 415665_add_package_manager_column into master

What does this MR do and why?

This is a denormalization to improve the performance of the group-level dependency list page.

Database review

rake db:migrate:up
main: == [advisory_lock_connection] object_id: 218840, pg_backend_pid: 97336
main: == 20230718120802 AddPackageManagerColumnToSbomOccurrences: migrating =========
main: -- transaction_open?()
main:    -> 0.0000s
main: -- add_column(:sbom_occurrences, :package_manager, :text, {:if_not_exists=>true})
main:    -> 0.1064s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE sbom_occurrences\nADD CONSTRAINT check_3f2d2c7ffc\nCHECK ( char_length(package_manager) <= 255 )\nNOT VALID;\n")
main:    -> 0.0007s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0002s
main: -- execute("ALTER TABLE sbom_occurrences VALIDATE CONSTRAINT check_3f2d2c7ffc;")
main:    -> 0.0006s
main: -- execute("RESET statement_timeout")
main:    -> 0.0002s
main: == 20230718120802 AddPackageManagerColumnToSbomOccurrences: migrated (0.1257s)

main: == [advisory_lock_connection] object_id: 218840, pg_backend_pid: 97336
rake db:migrate:down
main: == [advisory_lock_connection] object_id: 219920, pg_backend_pid: 96874
main: == 20230718120802 AddPackageManagerColumnToSbomOccurrences: reverting =========
main: -- remove_column(:sbom_occurrences, :package_manager, {:if_exists=>true})
main:    -> 0.0121s
main: == 20230718120802 AddPackageManagerColumnToSbomOccurrences: reverted (0.0152s)

main: == [advisory_lock_connection] object_id: 219920, pg_backend_pid: 96874

Related to Improve performance of `Sbom::DependenciesFinde... (#415665 - 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