Files

18 lines
982 B
JavaScript

/**
* portal/commerce/seed.mjs — 출시 검증용 Catalog 시드 명령.
* node portal/commerce/seed.mjs [catalog 파일] (DB 위치는 ARIWEB_PORTAL_DATA 또는 ./data)
* 같은 (product_id, version) 이 있으면 건너뛴다. 검증 실패면 아무것도 넣지 않고 종료 코드 1.
*/
import { openDb } from '../../lib/db.mjs';
import { allMigrations } from '../schema.mjs';
import { loadConfig } from '../config.mjs';
import { seedCatalog, loadCatalogFile, CATALOG_FILE } from './catalog.mjs';
import { join } from 'node:path';
const cfg = loadConfig();
const store = openDb(join(cfg.dataDir, 'portal.sqlite'), await allMigrations());
const file = process.argv[2] || CATALOG_FILE;
const r = seedCatalog(store, loadCatalogFile(file), 'seed-cli');
if (r.problems.length) { console.error('Catalog 검증 실패:\n - ' + r.problems.join('\n - ')); process.exit(1); }
console.log(`Catalog 시드 완료(${file}): 추가 ${r.inserted} · 이미 있음 ${r.skipped}`);