forked from UKSOURCE/cms.lams
52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
require('dotenv').config();
|
|
const fs = require('fs').promises;
|
|
const path = require('path');
|
|
const connectDB = require('../config/database');
|
|
const About = require('../models/about');
|
|
|
|
async function validateAboutData(data) {
|
|
if (!data || typeof data !== 'object') {
|
|
throw new Error('About data must be a valid object');
|
|
}
|
|
|
|
// Tuỳ schema bạn chỉnh lại cho chuẩn hơn
|
|
if (!data.hero || !data.leadership) {
|
|
throw new Error('Missing required fields: hero or leadership');
|
|
}
|
|
}
|
|
|
|
async function migrateAboutData() {
|
|
try {
|
|
await connectDB();
|
|
console.log('Đã kết nối MongoDB...');
|
|
|
|
await About.deleteMany({});
|
|
console.log('Đã xóa dữ liệu About cũ');
|
|
|
|
const aboutData = JSON.parse(
|
|
await fs.readFile(
|
|
path.join(__dirname, '../data/about.json'),
|
|
'utf8'
|
|
)
|
|
);
|
|
|
|
// Validate
|
|
await validateAboutData(aboutData);
|
|
// Transform (optional)
|
|
const finalData = {
|
|
...aboutData,
|
|
updatedAt: new Date()
|
|
};
|
|
// Insert
|
|
await About.create(finalData);
|
|
|
|
console.log('✓ Migrate About thành công!');
|
|
process.exit(0);
|
|
|
|
} catch (error) {
|
|
console.error('❌ Lỗi:', error.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
migrateAboutData(); |