38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
|
|
// Migration: Add ivanti_sync_state table
|
||
|
|
const sqlite3 = require('sqlite3').verbose();
|
||
|
|
const path = require('path');
|
||
|
|
|
||
|
|
const dbPath = path.join(__dirname, '..', 'cve_database.db');
|
||
|
|
const db = new sqlite3.Database(dbPath);
|
||
|
|
|
||
|
|
console.log('Starting Ivanti sync state migration...');
|
||
|
|
|
||
|
|
db.serialize(() => {
|
||
|
|
db.run(`
|
||
|
|
CREATE TABLE IF NOT EXISTS ivanti_sync_state (
|
||
|
|
id INTEGER PRIMARY KEY CHECK (id = 1),
|
||
|
|
total INTEGER DEFAULT 0,
|
||
|
|
workflows_json TEXT DEFAULT '[]',
|
||
|
|
synced_at DATETIME,
|
||
|
|
sync_status TEXT DEFAULT 'never',
|
||
|
|
error_message TEXT
|
||
|
|
)
|
||
|
|
`, (err) => {
|
||
|
|
if (err) console.error('Error creating table:', err);
|
||
|
|
else console.log('✓ ivanti_sync_state table created');
|
||
|
|
});
|
||
|
|
|
||
|
|
// Seed the single-row state record
|
||
|
|
db.run(`
|
||
|
|
INSERT OR IGNORE INTO ivanti_sync_state (id, total, workflows_json, sync_status)
|
||
|
|
VALUES (1, 0, '[]', 'never')
|
||
|
|
`, (err) => {
|
||
|
|
if (err) console.error('Error seeding state row:', err);
|
||
|
|
else console.log('✓ ivanti_sync_state row seeded');
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
db.close(() => {
|
||
|
|
console.log('Migration complete!');
|
||
|
|
});
|