forked from UKSOURCE/cms.hailearning.edu.vn
feat/huy-05022026-cms-add-footer-api-management
This commit is contained in:
68
scripts/2026_02_05_120000_footer.js
Normal file
68
scripts/2026_02_05_120000_footer.js
Normal 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);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user