diff --git a/firestore-bigquery-export/scripts/import/src/config.ts b/firestore-bigquery-export/scripts/import/src/config.ts index b9f839027..45eea725a 100644 --- a/firestore-bigquery-export/scripts/import/src/config.ts +++ b/firestore-bigquery-export/scripts/import/src/config.ts @@ -197,6 +197,12 @@ const questions = [ name: "failedBatchOutput", type: "input", }, + { + message: "Would you like to skip BigQuery init steps?", + name: "skipInit", + type: "confirm", + default: false, + }, ]; export async function parseConfig(): Promise { @@ -270,6 +276,7 @@ export async function parseConfig(): Promise { rawChangeLogName, cursorPositionFile, failedBatchOutput: program.failedBatchOutput, + skipInit: program.skipInit, }; } const { @@ -285,6 +292,7 @@ export async function parseConfig(): Promise { useNewSnapshotQuerySyntax, useEmulator, failedBatchOutput, + skipInit, } = await inquirer.prompt(questions); const rawChangeLogName = `${table}_raw_changelog`; @@ -311,6 +319,7 @@ export async function parseConfig(): Promise { rawChangeLogName, cursorPositionFile, failedBatchOutput, + skipInit, }; } diff --git a/firestore-bigquery-export/scripts/import/src/index.ts b/firestore-bigquery-export/scripts/import/src/index.ts index 0b9b3d439..016653e58 100644 --- a/firestore-bigquery-export/scripts/import/src/index.ts +++ b/firestore-bigquery-export/scripts/import/src/index.ts @@ -82,9 +82,12 @@ const run = async (): Promise => { useNewSnapshotQuerySyntax, bqProjectId: bigQueryProjectId, transformFunction: config.transformFunctionUrl, + skipInit: config.skipInit, }); - await initializeDataSink(dataSink, config); + if (!config.skipInit) { + await initializeDataSink(dataSink, config); + } logs.importingData(config); if (multiThreaded && queryCollectionGroup) { diff --git a/firestore-bigquery-export/scripts/import/src/program.ts b/firestore-bigquery-export/scripts/import/src/program.ts index 87982aa16..6cf3dc98f 100644 --- a/firestore-bigquery-export/scripts/import/src/program.ts +++ b/firestore-bigquery-export/scripts/import/src/program.ts @@ -65,5 +65,9 @@ export const getCLIOptions = () => { .option( "-f, --failed-batch-output ", "Path to the JSON file where failed batches will be recorded." + ) + .option( + "--skip-init [true|false]", + "Whether to skip BigQuery init steps." ); }; diff --git a/firestore-bigquery-export/scripts/import/src/types.ts b/firestore-bigquery-export/scripts/import/src/types.ts index e2dfdcd18..3511666e0 100644 --- a/firestore-bigquery-export/scripts/import/src/types.ts +++ b/firestore-bigquery-export/scripts/import/src/types.ts @@ -17,6 +17,7 @@ export interface CliConfig { cursorPositionFile: string; failedBatchOutput?: string; transformFunctionUrl?: string; + skipInit: boolean; } export interface CliConfigError {