53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
const mongoose = require('mongoose');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const connectDB = require('../config/db');
|
|
const Scene = require('../models/Scene');
|
|
const Asset = require('../models/Asset');
|
|
|
|
const reset = async () => {
|
|
try {
|
|
console.log('--- Bắt đầu quá trình Reset Dữ liệu ---');
|
|
|
|
// 1. Kết nối Database
|
|
await connectDB();
|
|
|
|
// 2. Xóa bản ghi trong Database
|
|
console.log('1. Đang xóa dữ liệu trong MongoDB...');
|
|
const deletedScenes = await Scene.deleteMany({});
|
|
const deletedAssets = await Asset.deleteMany({});
|
|
console.log(`- Đã xóa ${deletedScenes.deletedCount} scenes.`);
|
|
console.log(`- Đã xóa ${deletedAssets.deletedCount} assets.`);
|
|
|
|
// 3. Dọn dẹp tệp tin vật lý
|
|
const uploadDir = path.join(__dirname, '../uploads');
|
|
const tempDir = path.join(uploadDir, 'temp');
|
|
|
|
console.log('2. Đang dọn dẹp thư mục uploads...');
|
|
const directories = [uploadDir, tempDir];
|
|
|
|
directories.forEach(dir => {
|
|
if (fs.existsSync(dir)) {
|
|
const files = fs.readdirSync(dir);
|
|
for (const file of files) {
|
|
const fullPath = path.join(dir, file);
|
|
// Chỉ xóa file, không xóa thư mục (như temp) và tránh xóa file ẩn/cấu hình
|
|
if (fs.lstatSync(fullPath).isFile() && !file.startsWith('.')) {
|
|
fs.unlinkSync(fullPath);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
console.log('--- Hoàn tất reset hệ thống! ---');
|
|
|
|
// Đóng kết nối
|
|
mongoose.connection.close();
|
|
process.exit(0);
|
|
} catch (err) {
|
|
console.error('Lỗi nghiêm trọng trong quá trình reset:', err);
|
|
mongoose.connection.close();
|
|
process.exit(1);
|
|
}
|
|
};
|
|
|
|
reset(); |