@@ -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