38 lines
1.4 KiB
JavaScript
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);
|
|
}
|