forked from UKSOURCE/cms.hailearning.edu.vn
69 lines
1.7 KiB
JavaScript
69 lines
1.7 KiB
JavaScript
const mongoose = require("mongoose");
|
|
const path = require("path");
|
|
const fs = require("fs");
|
|
|
|
// Import model
|
|
const Footer = require("../models/footer");
|
|
|
|
/**
|
|
* Migration script để import dữ liệu footer từ JSON
|
|
*/
|
|
async function up() {
|
|
try {
|
|
console.log("Starting footer migration...");
|
|
|
|
// Đọc dữ liệu từ file JSON
|
|
const jsonPath = path.join(__dirname, "../data/footer.json");
|
|
|
|
if (!fs.existsSync(jsonPath)) {
|
|
throw new Error("Footer JSON file not found");
|
|
}
|
|
|
|
const footerData = JSON.parse(fs.readFileSync(jsonPath, "utf8"));
|
|
|
|
// Sử dụng static method từ model để migrate
|
|
const result = await Footer.migrateFromJson(footerData);
|
|
|
|
console.log("Footer migration completed successfully");
|
|
return result;
|
|
} catch (error) {
|
|
console.error("Footer migration failed:", error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Rollback migration
|
|
*/
|
|
async function down() {
|
|
try {
|
|
console.log("Rolling back footer migration...");
|
|
|
|
// Xóa footer data
|
|
await Footer.deleteMany({});
|
|
|
|
console.log("Footer rollback completed");
|
|
} catch (error) {
|
|
console.error("Footer rollback failed:", error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
module.exports = { up, down };
|
|
|
|
// Chạy migration nếu file được gọi trực tiếp
|
|
if (require.main === module) {
|
|
const connectDB = require("../config/database");
|
|
|
|
connectDB()
|
|
.then(() => up())
|
|
.then(() => {
|
|
console.log("Migration completed successfully");
|
|
process.exit(0);
|
|
})
|
|
.catch((error) => {
|
|
console.error("Migration failed:", error);
|
|
process.exit(1);
|
|
});
|
|
}
|