forked from UKSOURCE/cms.hailearning.edu.vn
first commit
This commit is contained in:
57
scripts/2025_12_11_214038_migrate_menu_header_ggcamp.js
Normal file
57
scripts/2025_12_11_214038_migrate_menu_header_ggcamp.js
Normal file
@@ -0,0 +1,57 @@
|
||||
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 };
|
||||
Reference in New Issue
Block a user