Anuj-Panthri's picture
umm
c13f601
import database from "better-sqlite3";
import dotenv from "dotenv";
import fs from "fs";
dotenv.config();
const db_path = process.env.DB_NAME as string;
console.log(db_path);
fs.unlink(db_path, (err) => {
if (err) {
console.error(err);
}
else {
console.log(`deleted old database:\t${db_path}`)
const db = database(db_path);
db.exec(`
create table users(
id Text not null PRIMARY KEY,
name varchar(40) NOT NULL,
password varchar(20) NOT NULL
);
`);
db.exec(`
create table sessions(
id Text not null PRIMARY KEY,
expires_at INTEGER NOT NULL,
user_id TEXT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
`);
db.exec(`
create table messages(
id Text not null primary key,
content Text not null,
type Text NOT NULL DEFAULT "text",
sender_id TEXT NOT NULL,
receiver_id TEXT NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status DEFAULT "sent", /* "sent", "received", "seen" */
FOREIGN KEY (sender_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (receiver_id) REFERENCES users(id) ON DELETE CASCADE
);
`);
}
})