Skip to content

Commit 6fa9204

Browse files
authored
[FIX] backfill command (#1236)
* mark the column as editable * add in other missing attribute
1 parent 0ac6a04 commit 6fa9204

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

compose/backend/neurosynth_compose/scripts/backfill_extraction_metadata.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from typing import Tuple
33

44
from sqlalchemy import select
5+
from sqlalchemy.orm.attributes import flag_modified
56

67
from neurosynth_compose.database import db
78
from neurosynth_compose.models.analysis import Project
@@ -18,15 +19,16 @@ def add_missing_extraction_ids(session=None) -> Tuple[int, int]:
1819
projects = sess.scalars(select(Project)).all()
1920

2021
for project in projects:
21-
provenance = project.provenance or {}
22-
extraction_metadata = provenance.get("extractionMetadata")
23-
24-
if not isinstance(extraction_metadata, dict):
25-
skipped += 1
26-
continue
27-
22+
provenance = dict(project.provenance or {})
23+
extraction_metadata_raw = provenance.get("extractionMetadata")
2824
changed = False
2925

26+
if isinstance(extraction_metadata_raw, dict):
27+
extraction_metadata = dict(extraction_metadata_raw)
28+
else:
29+
extraction_metadata = {}
30+
changed = True
31+
3032
if "studysetId" not in extraction_metadata:
3133
extraction_metadata["studysetId"] = None
3234
changed = True
@@ -38,6 +40,7 @@ def add_missing_extraction_ids(session=None) -> Tuple[int, int]:
3840
if changed:
3941
provenance["extractionMetadata"] = extraction_metadata
4042
project.provenance = provenance
43+
flag_modified(project, "provenance")
4144
updated += 1
4245
else:
4346
skipped += 1

0 commit comments

Comments
 (0)