forked from UKSOURCE/cms.hailearning.edu.vn
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
require('dotenv').config();
|
|
const connectDB = require('../config/database');
|
|
|
|
/**
|
|
* Migration: migrate_menu_header_ggcamp
|
|
* Created: 21:40:38 11/12/2025
|
|
*/
|
|
async function migrate() {
|
|
try {
|
|
// Kết nối database
|
|
await connectDB();
|
|
console.log('Starting migration: migrate_menu_header_ggcamp...');
|
|
|
|
const mongoose = require('mongoose');
|
|
const fs = require('fs').promises;
|
|
const path = require('path');
|
|
const Menu = require('../models/menuHeader');
|
|
|
|
// Xóa tất cả dữ liệu menu cũ
|
|
await Menu.deleteMany({});
|
|
|
|
// Đọc JSON file
|
|
const jsonPath = path.join(__dirname, '../data/menu-header.json');
|
|
const jsonData = JSON.parse(await fs.readFile(jsonPath, 'utf8'));
|
|
|
|
// Tạo menu items (đơn giản, không có fetch/programmes)
|
|
for (const menuData of jsonData.menus) {
|
|
// Chỉ giữ lại các field cần thiết: menuid, parent, title, url, order, type
|
|
const menuItem = {
|
|
menuid: menuData.menuid,
|
|
parent: menuData.parent || null,
|
|
title: menuData.title,
|
|
url: menuData.url,
|
|
order: menuData.order || 0,
|
|
type: menuData.type || 'static',
|
|
fetch: false, // Không dùng fetch
|
|
isActive: true // Mặc định active
|
|
};
|
|
await Menu.create(menuItem);
|
|
}
|
|
|
|
console.log('✅ Menu header migration completed successfully!');
|
|
|
|
await mongoose.disconnect();
|
|
process.exit(0);
|
|
} catch (error) {
|
|
console.error('❌ Migration error:', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
// Chạy migration nếu được gọi trực tiếp
|
|
if (require.main === module) {
|
|
migrate();
|
|
}
|
|
|
|
module.exports = { migrate };
|