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({
|
||||
|
||||
Reference in new issue
Block a user