Skip to content

Commit e93fa2f

Browse files
committed
More prod data fixes
1 parent 2909666 commit e93fa2f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

data-migration/src/migrators/challengeMigrator.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,37 @@ class ChallengeMigrator extends BaseMigrator {
137137
record.updatedAt = record.updated
138138
}
139139

140+
if (record.projectId !== undefined) {
141+
if (record.projectId === null) {
142+
// keep as null
143+
} else if (typeof record.projectId === 'string') {
144+
const trimmedProjectId = record.projectId.trim();
145+
146+
if (!trimmedProjectId || trimmedProjectId.toLowerCase() === 'null') {
147+
record.projectId = null;
148+
} else {
149+
const parsedProjectId = Number(trimmedProjectId);
150+
if (Number.isFinite(parsedProjectId) && Number.isInteger(parsedProjectId)) {
151+
record.projectId = parsedProjectId;
152+
} else {
153+
this.manager.logger.warn(`Skipping projectId for challenge ${record[this.getIdField()]}; non-integer value "${record.projectId}"`);
154+
record.projectId = Prisma.skip;
155+
}
156+
}
157+
} else if (typeof record.projectId !== 'number') {
158+
const parsedProjectId = Number(record.projectId);
159+
if (Number.isFinite(parsedProjectId) && Number.isInteger(parsedProjectId)) {
160+
record.projectId = parsedProjectId;
161+
} else {
162+
this.manager.logger.warn(`Skipping projectId for challenge ${record[this.getIdField()]}; non-integer value "${record.projectId}"`);
163+
record.projectId = Prisma.skip;
164+
}
165+
} else if (!Number.isInteger(record.projectId)) {
166+
this.manager.logger.warn(`Skipping projectId for challenge ${record[this.getIdField()]}; non-integer value "${record.projectId}"`);
167+
record.projectId = Prisma.skip;
168+
}
169+
}
170+
140171
if (record.legacyId !== undefined) {
141172
if (record.legacyId === null) {
142173
// keep as null

0 commit comments

Comments
 (0)