From fee3d55069772036152c4506d1fd40a312809323 Mon Sep 17 00:00:00 2001 From: Joaquim d'Souza Date: Thu, 19 Feb 2026 16:20:00 +0100 Subject: [PATCH] fix: bug where importDataRecords would overwrite columnDefs --- src/server/adaptors/googlesheets.ts | 2 +- src/server/jobs/importDataRecords.ts | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/server/adaptors/googlesheets.ts b/src/server/adaptors/googlesheets.ts index 2f4bcf01..7b4a4d45 100644 --- a/src/server/adaptors/googlesheets.ts +++ b/src/server/adaptors/googlesheets.ts @@ -141,7 +141,7 @@ export class GoogleSheetsAdaptor implements DataSourceAdaptor { async getRecordCount(): Promise { try { - const url = `https://sheets.googleapis.com/v4/spreadsheets/${this.spreadsheetId}/values/${encodeURIComponent(this.sheetName)}!A:A`; + const url = `https://sheets.googleapis.com/v4/spreadsheets/${this.spreadsheetId}/values/${encodeURIComponent(this.sheetName)}!A:Z`; const response = await this.makeGoogleSheetsRequest(url); if (!response.ok) { diff --git a/src/server/jobs/importDataRecords.ts b/src/server/jobs/importDataRecords.ts index 611976e4..c07e6c71 100644 --- a/src/server/jobs/importDataRecords.ts +++ b/src/server/jobs/importDataRecords.ts @@ -8,7 +8,6 @@ import { db } from "@/server/services/database"; import logger from "@/server/services/logger"; import { batchAsync } from "../utils"; import { importBatch } from "./importDataSource"; -import type { ColumnDef } from "@/server/models/DataSource"; const importDataRecords = async (args: object | null): Promise => { if (!args || !("dataSourceId" in args)) { @@ -49,20 +48,16 @@ const importDataRecords = async (args: object | null): Promise => { } const batches = batchAsync(dataRecords, DATA_RECORDS_JOB_BATCH_SIZE); + const columnDefsAccumulator = [...dataSource.columnDefs]; for await (const batch of batches) { try { - const columnDefsAccumulator = [] as ColumnDef[]; const records = await adaptor.fetchByExternalId( batch.map((r) => r.externalId), ); await importBatch(records, dataSource, columnDefsAccumulator); - await updateDataSource(dataSource.id, { - columnDefs: columnDefsAccumulator, - }); - await db .updateTable("dataRecord") .set({ needsImport: false }) @@ -86,6 +81,10 @@ const importDataRecords = async (args: object | null): Promise => { } } + await updateDataSource(dataSource.id, { + columnDefs: columnDefsAccumulator, + }); + // Update the recordCount for the data source const totalRecordCount = await db .selectFrom("dataRecord")