1- # Generated by Django 4.0.7 on 2022-11-25 12:57
2-
31from django .db import migrations
42from packageurl import PackageURL
53
64class Migration (migrations .Migration ):
75
8- def save_package (apps , schema_editor ):
6+ def save_purls (apps , schema_editor ):
97 Package = apps .get_model ("vulnerabilities" , "Package" )
8+ updatables = []
109 for package in Package .objects .all ():
1110 purl = PackageURL (
1211 type = package .type ,
@@ -16,13 +15,20 @@ def save_package(apps, schema_editor):
1615 qualifiers = package .qualifiers ,
1716 subpath = package .subpath ,
1817 )
19- package .package = str (purl )
20- package .save ()
18+ package .package_url = str (purl )
19+ updatables .append (package )
20+
21+ updated = Package .objects .bulk_update (
22+ objs = updatables ,
23+ fields = ["package_url" ],
24+ batch_size = 500 ,
25+ )
26+ print (f"Migrated { updated } packages with package_url" )
2127
2228 dependencies = [
23- ('vulnerabilities' , '0034_package_package ' ),
29+ ('vulnerabilities' , '0034_package_package_url ' ),
2430 ]
2531
2632 operations = [
27- migrations .RunPython (save_package , reverse_code = migrations .RunPython .noop ),
28- ]
33+ migrations .RunPython (save_purls , reverse_code = migrations .RunPython .noop ),
34+ ]
0 commit comments