Files
gerbeur/api/db/migrations/0007_password_reset_tokens.ts
Vincent Lannurien f171027673
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 41s
v3: added customizable site emoji (logo), small visual tweaks
2026-06-29 15:12:25 +02:00

24 lines
741 B
TypeScript

import type { DatabaseSync } from "node:sqlite";
// Idempotent: safe to run against a fresh db (already created from schema.sql
// with password_reset_tokens) or an existing one that predates the table.
export function up(db: DatabaseSync): void {
const tables = new Set(
(db.prepare(
`SELECT name FROM sqlite_master WHERE type = 'table';`,
).all() as { name: string }[]).map((r) => r.name),
);
if (!tables.has("password_reset_tokens")) {
db.exec(
`CREATE TABLE password_reset_tokens (
token TEXT PRIMARY KEY,
user_id TEXT NOT NULL,
expires_at TEXT NOT NULL,
used_at TEXT,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);`,
);
}
}