Add licenses without spdx to custom software license table
What does this MR do and why?
We want to migrate the custom licenses to the new table created in MR !151445 (merged)
This MR adds a data migration to add the licenses without spdx to custom software license table.
In GitLab.com we currently have 1044 licenses to migrate .
Query
INSERT INTO custom_software_licenses (name, project_id)
SELECT name,
project_id
FROM software_licenses
JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)
WHERE
software_licenses.spdx_identifier IS NULL
AND software_licenses.id BETWEEN 1 AND 1005
GROUP BY name, project_id;
https://postgres.ai/console/gitlab/gitlab-production-main/sessions/33178/commands/102487
Migration
UP
main: == [advisory_lock_connection] object_id: 129420, pg_backend_pid: 7046
main: == 20241103164158 MigrateSoftwareLicenseWithoutSpdxIdentifierToCustomLicensesTable: migrating
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 1 AND 1005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0309s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 1006 AND 2005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0016s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 2006 AND 3005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0016s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 3006 AND 4005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0015s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 4006 AND 5005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0015s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 5006 AND 6005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0015s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 6006 AND 7005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0015s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 7006 AND 8005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0016s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 8006 AND 9005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0016s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 9006 AND 10005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0016s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 10006 AND 11005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0015s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 11006 AND 12005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0016s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 12006 AND 13005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0020s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 13006 AND 14005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0073s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 14006 AND 15005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0067s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 15006 AND 16005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0065s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 16006 AND 17005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0060s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 17006 AND 18005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0071s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 18006 AND 19005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0066s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 19006 AND 20005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0064s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 20006 AND 21005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0069s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 21006 AND 22005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0069s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 22006 AND 23005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0070s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 23006 AND 24005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0068s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 24006 AND 25005\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0066s
main: -- execute(" INSERT INTO custom_software_licenses (name, project_id)\n SELECT\n name,\n project_id\nFROM\n software_licenses\n JOIN software_license_policies ON (software_licenses.id = software_license_policies.software_license_id)\nWHERE\n software_licenses.spdx_identifier IS NULL\nAND software_licenses.id BETWEEN 25006 AND 25672\nGROUP BY\n name,\n project_id;\n")
main: -> 0.0040s
main: == 20241103164158 MigrateSoftwareLicenseWithoutSpdxIdentifierToCustomLicensesTable: migrated (0.2151s)
DOWN
main: == 20241103164158 MigrateSoftwareLicenseWithoutSpdxIdentifierToCustomLicensesTable: reverting
main: == 20241103164158 MigrateSoftwareLicenseWithoutSpdxIdentifierToCustomLicensesTable: reverted (0.0041s)
References
Please include cross links to any resources that are relevant to this MR This will give reviewers and future readers helpful context to give an efficient review of the changes introduced.
- Related to #478520 (closed)
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots or screen recordings
Edited by Marcos Rocha