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