Files
uldp-degree-mangement-system/scripts/migrate-header.js

74 lines
2.4 KiB
JavaScript

const mongoose = require("mongoose");
const path = require("path");
require("dotenv").config({ path: path.join(__dirname, "../.env") });
const Header = require("../models/header");
const headerData = require("../data/header.json");
const migrateHeader = async () => {
try {
const mongoUri = process.env.MONGODB_URI;
if (!mongoUri) {
throw new Error("MONGODB_URI not found in environment variables");
}
await mongoose.connect(mongoUri);
console.log("Connected to MongoDB");
// Delete existing header
await Header.deleteMany({});
console.log("Cleared existing headers");
// Transform and insert data
const headerDocument = {
top: {
phone: headerData.top?.phone || "",
email: headerData.top?.email || "",
location: headerData.top?.location || "",
socialLinks: (headerData.top?.socialLinks || []).map((link, idx) => ({
...link,
order: idx,
})),
languages: headerData.top?.languages || [],
},
offcanvas: headerData.offcanvas || {},
menu: (headerData.menu || []).map((item, idx) => ({
...item,
order: idx,
children:
item.children?.map((child, childIdx) => ({
...child,
order: childIdx,
children:
child.children?.map((subchild, subIdx) => ({
...subchild,
order: subIdx,
})) || [],
})) || [],
})),
logo: {
light: "/assets/img/logo/white-logo.svg",
dark: "/assets/img/logo/black-logo.svg",
alt: "Hai Learning",
},
ctaButton: {
label: "Get Started",
href: "/contact",
style: "primary",
},
status: "active",
order: 1,
};
const result = await Header.create(headerDocument);
console.log("Header migrated successfully:", result._id);
await mongoose.connection.close();
process.exit(0);
} catch (error) {
console.error("Migration error:", error);
process.exit(1);
}
};
migrateHeader();