1
+ import type { PgSchema } from 'drizzle-orm/pg-core'
1
2
import type { FlattenedField , Payload , PayloadRequest } from 'payload'
2
3
3
4
import { sql } from 'drizzle-orm'
@@ -42,14 +43,16 @@ export const migrateRelationships = async ({
42
43
43
44
let paginationResult
44
45
46
+ const schemaName = ( adapter . pgSchema as PgSchema ) . schemaName ?? 'public'
47
+
45
48
const where = Array . from ( pathsToQuery ) . reduce ( ( statement , path , i ) => {
46
49
return ( statement += `
47
- "${ tableName } ${ adapter . relationshipsSuffix } "."path" LIKE '${ path } '${ pathsToQuery . size !== i + 1 ? ' OR' : '' }
50
+ "${ schemaName } "." ${ tableName } ${ adapter . relationshipsSuffix } "."path" LIKE '${ path } '${ pathsToQuery . size !== i + 1 ? ' OR' : '' }
48
51
` )
49
52
} , '' )
50
53
51
54
while ( typeof paginationResult === 'undefined' || paginationResult . rows . length > 0 ) {
52
- const paginationStatement = `SELECT DISTINCT parent_id FROM ${ tableName } ${ adapter . relationshipsSuffix } WHERE
55
+ const paginationStatement = `SELECT DISTINCT parent_id FROM " ${ schemaName } "." ${ tableName } ${ adapter . relationshipsSuffix } " WHERE
53
56
${ where } ORDER BY parent_id LIMIT 500 OFFSET ${ offset * 500 } ;
54
57
`
55
58
@@ -61,8 +64,8 @@ export const migrateRelationships = async ({
61
64
62
65
offset += 1
63
66
64
- const statement = `SELECT * FROM ${ tableName } ${ adapter . relationshipsSuffix } WHERE
65
- (${ where } ) AND parent_id IN (${ paginationResult . rows . map ( ( row ) => row . parent_id ) . join ( ', ' ) } );
67
+ const statement = `SELECT * FROM " ${ schemaName } "." ${ tableName } ${ adapter . relationshipsSuffix } " WHERE
68
+ (${ where } ) AND parent_id IN (${ paginationResult . rows . map ( ( row ) => `' ${ row . parent_id } '` ) . join ( ', ' ) } );
66
69
`
67
70
if ( debug ) {
68
71
payload . logger . info ( 'FINDING ROWS TO MIGRATE' )
@@ -99,7 +102,7 @@ export const migrateRelationships = async ({
99
102
} )
100
103
}
101
104
102
- const deleteStatement = `DELETE FROM ${ tableName } ${ adapter . relationshipsSuffix } WHERE ${ where } `
105
+ const deleteStatement = `DELETE FROM " ${ adapter . schemaName } "." ${ tableName } ${ adapter . relationshipsSuffix } " WHERE ${ where } `
103
106
if ( debug ) {
104
107
payload . logger . info ( 'DELETING ROWS' )
105
108
payload . logger . info ( deleteStatement )
0 commit comments