Add `package_manager` column to `sbom_occurrences` table
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.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Mehmet Emin INAC