Files
uldp-degree-mangement-system/scripts/2025_12_10_111338_insurance.js
r2xrzh9q2z-lab d1b931d547 first commit
2026-02-02 11:07:09 +07:00

82 lines
2.3 KiB
JavaScript

require('dotenv').config();
const fs = require('fs').promises;
const path = require('path');
const connectDB = require('../config/database');
const Insurance = require('../models/insurance');
const mongoose = require('mongoose');
/**
* Migration: insurance
* Created: 11:13:38 10/12/2025
* Updated: 14/12/2025 - Simplified for new structure only
*/
async function migrate() {
try {
console.log('Starting migration: insurance...');
await connectDB();
// Đọc file insurance.json
const insuranceJsonPath = path.join(__dirname, '../data/insurance.json');
console.log('Reading JSON file from:', insuranceJsonPath);
const insuranceData = JSON.parse(await fs.readFile(insuranceJsonPath, 'utf8'));
console.log('Insurance data loaded successfully');
// Sử dụng phương thức migrateFromJson của model
await Insurance.migrateFromJson(insuranceData);
console.log('Insurance migration completed successfully!');
await mongoose.disconnect();
process.exit(0);
} catch (error) {
console.error('Migration error:', error);
process.exit(1);
}
}
/**
* Custom migration logic cho insurance data
*/
async function migrateInsuranceData(insuranceData) {
try {
console.log('Starting custom migration logic...');
// Xóa dữ liệu cũ nếu có
const existingInsurance = await Insurance.find({});
if (existingInsurance.length > 0) {
console.log(`Found ${existingInsurance.length} existing insurance documents`);
await Insurance.deleteMany({});
console.log('Cleared existing insurance data');
}
// Tạo document mới
const insuranceDocument = new Insurance({
name: 'default',
version: '2.0.0',
language: 'en',
hero: insuranceData.hero,
page: insuranceData.page,
content: insuranceData.content,
createdAt: new Date(),
updatedAt: new Date(),
isActive: true
});
// Lưu vào database
await insuranceDocument.save();
console.log('Insurance document saved successfully');
} catch (error) {
console.error('Error in migrateInsuranceData:', error);
throw error;
}
}
// Chạy migration nếu được gọi trực tiếp
if (require.main === module) {
migrate();
}
module.exports = { migrate, migrateInsuranceData };