Files
cms.uldp.edu.vn/scripts/2025_12_03_154826_create_safety_table.js
r2xrzh9q2z-lab d1b931d547 first commit
2026-02-02 11:07:09 +07:00

90 lines
2.2 KiB
JavaScript

require("dotenv").config();
const fs = require("fs").promises;
const path = require("path");
const connectDB = require("../config/database");
const Safety = require("../models/safety");
const mongoose = require("mongoose");
/**
* Chuẩn hóa safety.json đúng theo safetySchema
*/
function transformSafety(data) {
return {
hero: {
banner: data?.hero?.banner || "",
title: data?.hero?.title || "",
},
approach: {
badge: data?.approach?.badge || "",
title: data?.approach?.title || "",
description: data?.approach?.description || "",
imgs: {
img1: data?.approach?.imgs?.img1 || "",
img2: data?.approach?.imgs?.img2 || "",
},
stats: {
count: data?.approach?.stats?.count || "",
label: data?.approach?.stats?.label || "",
avatars: Array.isArray(data?.approach?.stats?.avatars)
? data.approach.stats.avatars
: [],
},
features: Array.isArray(data?.approach?.features)
? data.approach.features
: [],
cards: Array.isArray(data?.approach?.cards)
? data.approach.cards
: [],
},
philosophy: {
title: data?.philosophy?.title || "",
subtitle: data?.philosophy?.subtitle || "",
cards: Array.isArray(data?.philosophy?.cards)
? data.philosophy.cards
: [],
},
security: {
title: data?.security?.title || "",
subtitle: data?.security?.subtitle || "",
cards: Array.isArray(data?.security?.cards)
? data.security.cards
: [],
},
updatedAt: new Date(),
};
}
/**
* MIGRATION
*/
async function migrate() {
try {
console.log("Starting migration: create_safety_table...");
await connectDB();
const safetyJsonPath = path.join(__dirname, "../data/safety.json");
const raw = await fs.readFile(safetyJsonPath, "utf8");
const source = JSON.parse(raw);
const doc = transformSafety(source);
await Safety.create(doc);
console.log("Migration create_safety_table completed successfully!");
await mongoose.disconnect();
process.exit(0);
} catch (error) {
console.error("Migration error:", error);
process.exit(1);
}
}
if (require.main === module) migrate();
module.exports = { migrate };