fix: migrate() uses CREATE IF NOT EXISTS — no more data wipe on restart
This commit is contained in:
parent
1794c05b4f
commit
ed5e213b1a
|
|
@ -4,15 +4,9 @@ const sql = postgres(process.env.DATABASE_URL ?? "postgres://pingql:pingql@local
|
|||
|
||||
export default sql;
|
||||
|
||||
// Run migrations on startup — full rebuild (no real users)
|
||||
export async function migrate() {
|
||||
await sql`DROP TABLE IF EXISTS pings CASCADE`;
|
||||
await sql`DROP TABLE IF EXISTS api_keys CASCADE`;
|
||||
await sql`DROP TABLE IF EXISTS monitors CASCADE`;
|
||||
await sql`DROP TABLE IF EXISTS accounts CASCADE`;
|
||||
|
||||
await sql`
|
||||
CREATE TABLE accounts (
|
||||
CREATE TABLE IF NOT EXISTS accounts (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
key TEXT NOT NULL UNIQUE,
|
||||
email_hash TEXT,
|
||||
|
|
@ -21,7 +15,7 @@ export async function migrate() {
|
|||
`;
|
||||
|
||||
await sql`
|
||||
CREATE TABLE monitors (
|
||||
CREATE TABLE IF NOT EXISTS monitors (
|
||||
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
|
||||
account_id UUID NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
||||
name TEXT NOT NULL,
|
||||
|
|
@ -38,7 +32,7 @@ export async function migrate() {
|
|||
`;
|
||||
|
||||
await sql`
|
||||
CREATE TABLE pings (
|
||||
CREATE TABLE IF NOT EXISTS pings (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
monitor_id TEXT NOT NULL REFERENCES monitors(id) ON DELETE CASCADE,
|
||||
checked_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
|
|
@ -54,7 +48,7 @@ export async function migrate() {
|
|||
await sql`CREATE INDEX IF NOT EXISTS idx_pings_checked_at ON pings(checked_at)`;
|
||||
|
||||
await sql`
|
||||
CREATE TABLE api_keys (
|
||||
CREATE TABLE IF NOT EXISTS api_keys (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
key TEXT NOT NULL UNIQUE,
|
||||
account_id UUID NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
||||
|
|
|
|||
Loading…
Reference in New Issue