feat/huy-05022026-cms-add-footer-api-management

This commit is contained in:
2026-02-05 15:11:25 +07:00
parent b4891101e7
commit fb8676879d
11 changed files with 2673 additions and 1736 deletions

View File

@@ -0,0 +1,68 @@
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);
});
}