geocrop-platform./apps/nextgen/server/switch_level.js

38 lines
1.4 KiB
JavaScript

const Database = require('better-sqlite3');
const path = require('path');
const dbPath = path.join(__dirname, './data/school.db');
const db = new Database(dbPath);
const targetLevel = process.argv[2];
const validLevels = ['primary', 'secondary', 'high_school', 'tertiary'];
if (!targetLevel || !validLevels.includes(targetLevel)) {
console.log(`Usage: node switch_level.js [${validLevels.join('|')}]`);
process.exit(1);
}
try {
db.transaction(() => {
// 1. Update school_settings
db.prepare("UPDATE school_settings SET value = ? WHERE key = 'education_level' AND is_deleted = 0")
.run(targetLevel);
// 2. Set is_default = 1 for the target configuration level, and 0 for others
db.prepare('UPDATE education_level_configs SET is_default = 0 WHERE is_deleted = 0')
.run();
db.prepare('UPDATE education_level_configs SET is_default = 1 WHERE level = ? AND is_deleted = 0')
.run(targetLevel);
})();
console.log(`Successfully updated database education level to: "${targetLevel}"`);
// Print updated tables
const settings = db.prepare("SELECT * FROM school_settings WHERE is_deleted = 0").all();
const configs = db.prepare('SELECT level, is_default FROM education_level_configs WHERE is_deleted = 0').all();
console.log('Updated settings:', settings);
console.log('Updated configs:', configs);
} catch (err) {
console.error('Failed to update database level:', err.message);
}