Spaces:
Sleeping
Sleeping
File size: 1,576 Bytes
d381a4c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('./database.sqlite');
db.serialize(() => {
db.run("PRAGMA foreign_keys=off;");
db.run("BEGIN TRANSACTION;");
db.run(`CREATE TABLE users_new (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL,
emp_id TEXT,
gender TEXT,
password TEXT,
role TEXT NOT NULL CHECK(role IN ('Pool Host', 'Passenger', 'Admin')),
has_vehicle_pass BOOLEAN DEFAULT 0,
vehicle_no TEXT,
vehicle_make TEXT,
vehicle_model TEXT,
vehicle_capacity TEXT,
status TEXT DEFAULT 'Active',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
UNIQUE(email, role)
)`);
db.run(`INSERT INTO users_new (id, name, email, emp_id, gender, password, role, has_vehicle_pass, vehicle_no, vehicle_make, vehicle_model, vehicle_capacity, status, created_at)
SELECT id, name, email, emp_id, gender, password, role, has_vehicle_pass, vehicle_no, vehicle_make, vehicle_model, vehicle_capacity, status, created_at
FROM users`);
db.run("DROP TABLE users");
db.run("ALTER TABLE users_new RENAME TO users");
// Now seed admin
const adminHash = '$2b$10$kzOslSASLTVaqbM0mRtbDOQQJOARQTLlwzmvtuafDMnHSawIEvugK';
db.run(`INSERT OR IGNORE INTO users (name, email, password, role, status) VALUES (?, ?, ?, ?, ?)`,
['Admin Commute Controller', 'admin@reliance.com', adminHash, 'Admin', 'Active']);
db.run("COMMIT;");
db.run("PRAGMA foreign_keys=on;", () => {
console.log("Migration complete!");
});
});
|