Merge pull request #3749 from bluewave-labs/develop

migration fix
This commit is contained in:
Alexander Holliday authored and GitHub committed 2026-07-02 10:43:59 -07:00
commit d337bb235c
1 file changed
+6 -6
@@ -1,5 +1,4 @@
import mongoose from "mongoose";
import type { AnyBulkWriteOperation, Document } from "mongodb";
import type { ILogger } from "@/utils/logger.js";
import MaintenanceWindowModel from "../../domain/maintenance-windows/maintenance-window.model.js";
@@ -65,7 +64,11 @@ export async function migrateMaintenanceWindowMonitorIdToArray(logger: ILogger):
return;
}
const bulkOps: AnyBulkWriteOperation<Document>[] = [];
// Derive the op type from the exact bulkWrite we call, so it always matches whichever `mongodb`
// copy Mongoose resolves (a fresh Docker install nests its own under mongoose/node_modules,
// distinct from the top-level one — importing the type from "mongodb" picks the wrong copy).
type BulkOp = Parameters<typeof MaintenanceWindowModel.collection.bulkWrite>[0][number];
const bulkOps: BulkOp[] = [];
let originalDocCount = 0;
for (const group of groups) {
@@ -92,10 +95,7 @@ export async function migrateMaintenanceWindowMonitorIdToArray(logger: ILogger):
}
}
// Use the raw driver collection (like migration 0002) rather than Model.collection: the latter is
// typed with Mongoose's bundled mongodb, which clashes with the top-level `mongodb` op types under
// a dual-package install (fresh Docker build) and fails to compile.
const result = await db.collection(MaintenanceWindowModel.collection.collectionName).bulkWrite(bulkOps, { ordered: true });
const result = await MaintenanceWindowModel.collection.bulkWrite(bulkOps, { ordered: true });
const deletedCount = originalDocCount - groups.length;
logger.info({