Files
klz-cables.com/.pnpm-store/v10/files/5a/dc47f1f194068f3b1aaa1c866921c035c33a9b0548ad979caee12d4b50b8de4acb80391bd9e466c2e1e65d59c8085008e56689c212881d663bcaf2406d7c8f
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

51 lines
1.8 KiB
Plaintext

import { toSnakeCase } from '../shared.js';
/**
* Migrates main collection documents from _status to per-locale status object
*/ export async function migrateMainCollectionStatus({ collectionSlug, db, locales, payload, sql, versionsTable }) {
const mainTable = toSnakeCase(collectionSlug);
const mainLocalesTable = `${mainTable}_locales`;
payload.logger.info({
msg: `Migrating main collection locales for: ${mainLocalesTable}`
});
// Get all documents
const documents = await db.execute({
drizzle: db.drizzle,
sql: sql`
SELECT DISTINCT id
FROM ${sql.identifier(mainTable)}
`
});
for (const doc of documents.rows){
// For each locale, get the latest version status
for (const locale of locales){
const latestVersionStatus = await db.execute({
drizzle: db.drizzle,
sql: sql`
SELECT l.version__status as _status
FROM ${sql.identifier(versionsTable)} v
JOIN ${sql.raw(`${versionsTable}_locales`)} l ON l._parent_id = v.id
WHERE v.parent_id = ${doc.id}
AND l._locale = ${locale}
ORDER BY v.created_at DESC
LIMIT 1
`
});
const status = latestVersionStatus.rows[0]?._status || 'draft';
// Update the main collection's locales table with this status
await db.execute({
drizzle: db.drizzle,
sql: sql`
UPDATE ${sql.identifier(mainLocalesTable)}
SET _status = ${status}
WHERE _parent_id = ${doc.id}
AND _locale = ${locale}
`
});
}
}
payload.logger.info({
msg: `Migrated ${documents.rows.length} collection documents`
});
}
//# sourceMappingURL=migrateMainCollection.js.map