Files
cms.techvanguard.vn/scripts/migrate-footer.js
T

59 lines
1.5 KiB
JavaScript

require('dotenv').config();
const fs = require('fs').promises;
const path = require('path');
const connectDB = require('../config/database');
const Footer = require('../models/footer');
async function validateFooterData(data) {
if (!data || typeof data !== 'object') {
throw new Error('Footer data must be a valid object');
}
const required = ['brand', 'explore', 'contact', 'newsletter', 'bottom'];
for (const field of required) {
if (!data[field]) {
throw new Error(`Missing required field: ${field}`);
}
}
}
async function migrateFooterData() {
try {
await connectDB();
console.log('Đã kết nối MongoDB...');
// Xóa dữ liệu cũ
await Footer.deleteMany({});
console.log('Đã xóa dữ liệu Footer cũ');
// Đọc file JSON
const footerData = JSON.parse(
await fs.readFile(
path.join(__dirname, '../data/footer.json'),
'utf8'
)
);
// Validate
await validateFooterData(footerData);
// Transform
const finalData = {
...footerData,
updatedAt: new Date(),
};
// Insert
await Footer.create(finalData);
console.log('✓ Migrate Footer thành công!');
process.exit(0);
} catch (error) {
console.error('❌ Lỗi:', error.message);
process.exit(1);
}
}
migrateFooterData();