Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
5.4 KiB
Plaintext
1 line
5.4 KiB
Plaintext
{"version":3,"sources":["../../../../src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts"],"sourcesContent":["import type { PgSchema } from 'drizzle-orm/pg-core'\nimport type { FlattenedField, Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\n\nimport type { BasePostgresAdapter, PostgresDB } from '../../types.js'\nimport type { DocsToResave, PathsToQuery } from './types.js'\n\nimport { fetchAndResave } from './fetchAndResave/index.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n collectionSlug?: string\n db: PostgresDB\n debug: boolean\n fields: FlattenedField[]\n globalSlug?: string\n isVersions: boolean\n pathsToQuery: PathsToQuery\n payload: Payload\n req?: Partial<PayloadRequest>\n tableName: string\n}\n\nexport const migrateRelationships = async ({\n adapter,\n collectionSlug,\n db,\n debug,\n fields,\n globalSlug,\n isVersions,\n pathsToQuery,\n payload,\n req,\n tableName,\n}: Args) => {\n if (pathsToQuery.size === 0) {\n return\n }\n\n let offset = 0\n\n let paginationResult\n\n const schemaName = (adapter.pgSchema as PgSchema).schemaName ?? 'public'\n\n const where = Array.from(pathsToQuery).reduce((statement, path, i) => {\n return (statement += `\n\"${schemaName}\".\"${tableName}${adapter.relationshipsSuffix}\".\"path\" LIKE '${path}'${pathsToQuery.size !== i + 1 ? ' OR' : ''}\n`)\n }, '')\n\n while (typeof paginationResult === 'undefined' || paginationResult.rows.length > 0) {\n const paginationStatement = `SELECT DISTINCT parent_id FROM \"${schemaName}\".\"${tableName}${adapter.relationshipsSuffix}\" WHERE\n ${where} ORDER BY parent_id LIMIT 500 OFFSET ${offset * 500};\n `\n\n paginationResult = await db.execute(sql.raw(`${paginationStatement}`))\n\n if (paginationResult.rows.length === 0) {\n return\n }\n\n offset += 1\n\n const statement = `SELECT * FROM \"${schemaName}\".\"${tableName}${adapter.relationshipsSuffix}\" WHERE\n (${where}) AND parent_id IN (${paginationResult.rows.map((row) => `'${row.parent_id}'`).join(', ')});\n`\n if (debug) {\n payload.logger.info('FINDING ROWS TO MIGRATE')\n payload.logger.info(statement)\n }\n\n const result = await db.execute(sql.raw(`${statement}`))\n\n const docsToResave: DocsToResave = {}\n\n result.rows.forEach((row) => {\n const parentID = row.parent_id\n\n if (typeof parentID === 'string' || typeof parentID === 'number') {\n if (!docsToResave[parentID]) {\n docsToResave[parentID] = []\n }\n docsToResave[parentID].push(row)\n }\n })\n\n await fetchAndResave({\n adapter,\n collectionSlug,\n db,\n debug,\n docsToResave,\n fields,\n globalSlug,\n isVersions,\n payload,\n req,\n tableName,\n })\n }\n\n const deleteStatement = `DELETE FROM \"${schemaName}\".\"${tableName}${adapter.relationshipsSuffix}\" WHERE ${where}`\n if (debug) {\n payload.logger.info('DELETING ROWS')\n payload.logger.info(deleteStatement)\n }\n await db.execute(sql.raw(`${deleteStatement}`))\n}\n"],"names":["sql","fetchAndResave","migrateRelationships","adapter","collectionSlug","db","debug","fields","globalSlug","isVersions","pathsToQuery","payload","req","tableName","size","offset","paginationResult","schemaName","pgSchema","where","Array","from","reduce","statement","path","i","relationshipsSuffix","rows","length","paginationStatement","execute","raw","map","row","parent_id","join","logger","info","result","docsToResave","forEach","parentID","push","deleteStatement"],"mappings":"AAGA,SAASA,GAAG,QAAQ,cAAa;AAKjC,SAASC,cAAc,QAAQ,4BAA2B;AAgB1D,OAAO,MAAMC,uBAAuB,OAAO,EACzCC,OAAO,EACPC,cAAc,EACdC,EAAE,EACFC,KAAK,EACLC,MAAM,EACNC,UAAU,EACVC,UAAU,EACVC,YAAY,EACZC,OAAO,EACPC,GAAG,EACHC,SAAS,EACJ;IACL,IAAIH,aAAaI,IAAI,KAAK,GAAG;QAC3B;IACF;IAEA,IAAIC,SAAS;IAEb,IAAIC;IAEJ,MAAMC,aAAa,AAACd,QAAQe,QAAQ,CAAcD,UAAU,IAAI;IAEhE,MAAME,QAAQC,MAAMC,IAAI,CAACX,cAAcY,MAAM,CAAC,CAACC,WAAWC,MAAMC;QAC9D,OAAQF,aAAa,CAAC;CACzB,EAAEN,WAAW,GAAG,EAAEJ,YAAYV,QAAQuB,mBAAmB,CAAC,eAAe,EAAEF,KAAK,CAAC,EAAEd,aAAaI,IAAI,KAAKW,IAAI,IAAI,QAAQ,GAAG;AAC7H,CAAC;IACC,GAAG;IAEH,MAAO,OAAOT,qBAAqB,eAAeA,iBAAiBW,IAAI,CAACC,MAAM,GAAG,EAAG;QAClF,MAAMC,sBAAsB,CAAC,gCAAgC,EAAEZ,WAAW,GAAG,EAAEJ,YAAYV,QAAQuB,mBAAmB,CAAC;IACvH,EAAEP,MAAM,qCAAqC,EAAEJ,SAAS,IAAI;EAC9D,CAAC;QAECC,mBAAmB,MAAMX,GAAGyB,OAAO,CAAC9B,IAAI+B,GAAG,CAAC,GAAGF,qBAAqB;QAEpE,IAAIb,iBAAiBW,IAAI,CAACC,MAAM,KAAK,GAAG;YACtC;QACF;QAEAb,UAAU;QAEV,MAAMQ,YAAY,CAAC,eAAe,EAAEN,WAAW,GAAG,EAAEJ,YAAYV,QAAQuB,mBAAmB,CAAC;KAC3F,EAAEP,MAAM,oBAAoB,EAAEH,iBAAiBW,IAAI,CAACK,GAAG,CAAC,CAACC,MAAQ,CAAC,CAAC,EAAEA,IAAIC,SAAS,CAAC,CAAC,CAAC,EAAEC,IAAI,CAAC,MAAM;AACvG,CAAC;QACG,IAAI7B,OAAO;YACTK,QAAQyB,MAAM,CAACC,IAAI,CAAC;YACpB1B,QAAQyB,MAAM,CAACC,IAAI,CAACd;QACtB;QAEA,MAAMe,SAAS,MAAMjC,GAAGyB,OAAO,CAAC9B,IAAI+B,GAAG,CAAC,GAAGR,WAAW;QAEtD,MAAMgB,eAA6B,CAAC;QAEpCD,OAAOX,IAAI,CAACa,OAAO,CAAC,CAACP;YACnB,MAAMQ,WAAWR,IAAIC,SAAS;YAE9B,IAAI,OAAOO,aAAa,YAAY,OAAOA,aAAa,UAAU;gBAChE,IAAI,CAACF,YAAY,CAACE,SAAS,EAAE;oBAC3BF,YAAY,CAACE,SAAS,GAAG,EAAE;gBAC7B;gBACAF,YAAY,CAACE,SAAS,CAACC,IAAI,CAACT;YAC9B;QACF;QAEA,MAAMhC,eAAe;YACnBE;YACAC;YACAC;YACAC;YACAiC;YACAhC;YACAC;YACAC;YACAE;YACAC;YACAC;QACF;IACF;IAEA,MAAM8B,kBAAkB,CAAC,aAAa,EAAE1B,WAAW,GAAG,EAAEJ,YAAYV,QAAQuB,mBAAmB,CAAC,QAAQ,EAAEP,OAAO;IACjH,IAAIb,OAAO;QACTK,QAAQyB,MAAM,CAACC,IAAI,CAAC;QACpB1B,QAAQyB,MAAM,CAACC,IAAI,CAACM;IACtB;IACA,MAAMtC,GAAGyB,OAAO,CAAC9B,IAAI+B,GAAG,CAAC,GAAGY,iBAAiB;AAC/C,EAAC"} |