@@ -67,24 +67,30 @@ async function moveWorkspace (
6767 mongo : MongoClient ,
6868 pgClient : postgres . Sql ,
6969 ws : Workspace ,
70- region : string
70+ region : string ,
71+ include ?: Set < string >
7172) : Promise < void > {
7273 try {
7374 const wsId = getWorkspaceId ( ws . workspace )
7475 const mongoDB = getWorkspaceMongoDB ( mongo , wsId )
7576 const collections = await mongoDB . collections ( )
76- await createTable (
77- pgClient ,
78- collections . map ( ( c ) => c . collectionName )
79- )
77+ let tables = collections . map ( ( c ) => c . collectionName )
78+ if ( include !== undefined ) {
79+ tables = tables . filter ( ( t ) => include . has ( t ) )
80+ }
81+
82+ await createTable ( pgClient , tables )
8083 const token = generateToken ( systemAccountEmail , wsId )
8184 const endpoint = await getTransactorEndpoint ( token , 'external' )
8285 const connection = ( await connect ( endpoint , wsId , undefined , {
8386 model : 'upgrade'
8487 } ) ) as unknown as Client & BackupClient
8588 for ( const collection of collections ) {
86- const cursor = collection . find ( )
8789 const domain = translateDomain ( collection . collectionName )
90+ if ( include !== undefined && ! include . has ( domain ) ) {
91+ continue
92+ }
93+ const cursor = collection . find ( )
8894 const current = await pgClient `SELECT _id FROM ${ pgClient ( domain ) } WHERE "workspaceId" = ${ ws . workspace } `
8995 const currentIds = new Set ( current . map ( ( r ) => r . _id ) )
9096 console . log ( 'move domain' , domain )
@@ -131,7 +137,8 @@ export async function moveWorkspaceFromMongoToPG (
131137 mongoUrl : string ,
132138 dbUrl : string | undefined ,
133139 ws : Workspace ,
134- region : string
140+ region : string ,
141+ include ?: Set < string >
135142) : Promise < void > {
136143 if ( dbUrl === undefined ) {
137144 throw new Error ( 'dbUrl is required' )
@@ -141,7 +148,7 @@ export async function moveWorkspaceFromMongoToPG (
141148 const pg = getDBClient ( dbUrl )
142149 const pgClient = await pg . getClient ( )
143150
144- await moveWorkspace ( accountDb , mongo , pgClient , ws , region )
151+ await moveWorkspace ( accountDb , mongo , pgClient , ws , region , include )
145152 pg . close ( )
146153 client . close ( )
147154}
0 commit comments