Files
pathtoglory_blog/db/migrations/2026-03-04_15:23_create_user_tables.sql

30 lines
833 B
MySQL
Raw Normal View History

2026-03-09 22:17:39 +01:00
CREATE TABLE users (
id TEXT PRIMARY KEY NOT NULL UNIQUE,
username VARCHAR(255)
);
CREATE TABLE passkeys (
id TEXT PRIMARY KEY NOT NULL UNIQUE,
public_key BYTEA,
webauthn_user__id TEXT UNIQUE,
counter BIGINT,
device_type VARCHAR(32),
transports VARCHAR(255)
);
-- User/passkey junction table
CREATE TABLE user_passkeys (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id TEXT NOT NULL,
passkey_id TEXT NOT NULL,
-- Foreign key constraints
CONSTRAINT fk_user_passkeys_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
CONSTRAINT fk_user_passkeys_passkeys FOREIGN KEY (passkey_id) REFERENCES passkeys(id) ON DELETE CASCADE,
-- Prevent duplicates
CONSTRAINT unique_user_passkeys UNIQUE (user_id, passkey_id)
);
CREATE INDEX index_passkeys ON passkeys (id, webauthn_user__id);