forked from UKSOURCE/cms.hailearning.edu.vn
refactor: delete file seeddatabase
This commit is contained in:
@@ -1,92 +0,0 @@
|
|||||||
require("dotenv").config();
|
|
||||||
const mongoose = require("mongoose");
|
|
||||||
const fs = require("fs");
|
|
||||||
const path = require("path");
|
|
||||||
|
|
||||||
// Import models
|
|
||||||
const About = require("../models/aboutUs");
|
|
||||||
const Blog = require("../models/blog");
|
|
||||||
const Service = require("../models/service");
|
|
||||||
const Contact = require("../models/contact");
|
|
||||||
const Footer = require("../models/footer");
|
|
||||||
const Header = require("../models/header");
|
|
||||||
const HeaderMenu = require("../models/headerMenu");
|
|
||||||
const Home = require("../models/home");
|
|
||||||
const FAQ = require("../models/faq");
|
|
||||||
const Visa = require("../models/visa");
|
|
||||||
const Appointment = require("../models/appointment");
|
|
||||||
const Pricing = require("../models/pricing");
|
|
||||||
const Activity = require("../models/activity");
|
|
||||||
|
|
||||||
// Data mapping
|
|
||||||
const dataMap = {
|
|
||||||
about: { model: About, file: "about.json" },
|
|
||||||
blog: { model: Blog, file: "blog.json" },
|
|
||||||
service: { model: Service, file: "service.json" },
|
|
||||||
contact: { model: Contact, file: "contact.json" },
|
|
||||||
footer: { model: Footer, file: "footer.json" },
|
|
||||||
header: { model: Header, file: "header.json" },
|
|
||||||
headerMenu: { model: HeaderMenu, file: "header-menu.json" },
|
|
||||||
home: { model: Home, file: "home.json" },
|
|
||||||
faq: { model: FAQ, file: "faq-data.json" },
|
|
||||||
visa: { model: Visa, file: "visa.json" },
|
|
||||||
appointment: { model: Appointment, file: "appointment.json" },
|
|
||||||
pricing: { model: Pricing, file: "pricing.json" },
|
|
||||||
};
|
|
||||||
|
|
||||||
const seedDatabase = async () => {
|
|
||||||
try {
|
|
||||||
// Kết nối MongoDB
|
|
||||||
if (!process.env.MONGODB_URI) {
|
|
||||||
throw new Error("MONGODB_URI is not defined in environment variables");
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("🔗 Connecting to MongoDB...");
|
|
||||||
await mongoose.connect(process.env.MONGODB_URI);
|
|
||||||
console.log("✅ MongoDB Connected");
|
|
||||||
|
|
||||||
// Seed từng collection
|
|
||||||
for (const [key, config] of Object.entries(dataMap)) {
|
|
||||||
try {
|
|
||||||
const jsonPath = path.join(__dirname, "../data", config.file);
|
|
||||||
|
|
||||||
if (!fs.existsSync(jsonPath)) {
|
|
||||||
console.warn(`⚠️ ${config.file} không tồn tại, bỏ qua...`);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
const rawData = fs.readFileSync(jsonPath, "utf8");
|
|
||||||
const jsonData = JSON.parse(rawData);
|
|
||||||
|
|
||||||
if (Array.isArray(jsonData)) {
|
|
||||||
// Nếu là array, xóa tất cả và thêm mới
|
|
||||||
await config.model.deleteMany({});
|
|
||||||
await config.model.insertMany(jsonData);
|
|
||||||
console.log(`✅ Seeded ${key} (${jsonData.length} items)`);
|
|
||||||
} else {
|
|
||||||
// Nếu là object, dùng upsert
|
|
||||||
await config.model.findOneAndUpdate({}, jsonData, {
|
|
||||||
upsert: true,
|
|
||||||
new: true,
|
|
||||||
setDefaultsOnInsert: true
|
|
||||||
});
|
|
||||||
console.log(`✅ Seeded ${key}`);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error(`❌ Error seeding ${key}:`, error.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("🎉 Database seeding completed successfully!");
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.error("❌ Seeding failed:", error.message);
|
|
||||||
process.exit(1);
|
|
||||||
} finally {
|
|
||||||
await mongoose.connection.close();
|
|
||||||
console.log("👋 Database connection closed");
|
|
||||||
process.exit(0);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
seedDatabase();
|
|
||||||
Reference in New Issue
Block a user