v3.5.4版本提交
CI / verify (pull_request) Has been cancelled

This commit is contained in:
2026-08-21 15:48:15 +08:00
parent 26334ed072
commit a01217539c
32 changed files with 2278 additions and 147 deletions
@@ -0,0 +1,46 @@
/**
* v3.5.4:为尚无 SKU 的商品回填默认 SKU(与 migrate-product-sku-v354.sql 一致)
* 用法:cd server/dukang-api && npx ts-node prisma/backfill-product-skus.ts
*/
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
const products = await prisma.commonProductItem.findMany({
include: { skus: { select: { id: true }, take: 1 } },
});
let created = 0;
for (const p of products) {
if (p.skus.length > 0) continue;
await prisma.commonProductSku.create({
data: {
productId: p.id,
skuCode: p.skuCode,
barcode69: p.barcode69,
specKey: '',
specText: p.spec,
price: p.price,
benefitAmount: p.benefitAmount,
status: p.status,
allowOnSitePickup: p.allowOnSitePickup,
allowOnlinePurchase: p.allowOnlinePurchase,
allowCrossCityDelivery: p.allowCrossCityDelivery,
saleUnit: 'BOTTLE',
bottlesPerUnit: 1,
isDefault: true,
sortOrder: 0,
},
});
created += 1;
console.log(`created default sku for product ${p.id} ${p.skuCode}`);
}
console.log(`done, created=${created}, scanned=${products.length}`);
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(() => prisma.$disconnect());