initial setup, messing around with sqlc

This commit is contained in:
zardzul
2026-03-10 20:22:07 +01:00
parent 9f9054e53b
commit 5fa23b0d1c
11 changed files with 332 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
FROM postgres:18.3-alpine3.23
# Set environment variables for PostgreSQL
ENV POSTGRES_USER=${POSTGRES_USER}
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
ENV POSTGRES_DB=${POSTGRES_DB}
# Copy the database setup script
COPY db.sql /docker-entrypoint-initdb.d/01_init.sql
+35
View File
@@ -0,0 +1,35 @@
CREATE TABLE IF NOT EXISTS users (
id UUID PRIMARY KEY,
user_name VARCHAR(255) NOT NULL,
user_mail VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS albums (
id UUID PRIMARY KEY,
name VARCHAR(255) NOT NULL,
artist VARCHAR(255) NOT NULL,
release_date DATE,
album_art_url VARCHAR(255)
);
CREATE TABLE IF NOT EXISTS artists (
id UUID PRIMARY KEY,
name VARCHAR(255) NOT NULL,
genre VARCHAR(255),
bio TEXT,
artist_image_url VARCHAR(255)
);
CREATE TABLE IF NOT EXISTS user_albums (
user_id UUID,
album_id UUID,
album_owned BOOLEAN NOT NULL DEFAULT FALSE,
album_want BOOLEAN NOT NULL DEFAULT FALSE,
is_vinyl BOOLEAN NOT NULL DEFAULT FALSE,
is_cd BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY (user_id, album_id),
FOREIGN KEY (user_id) REFERENCES Users(id) ON DELETE CASCADE,
FOREIGN KEY (album_id) REFERENCES Albums(id) ON DELETE CASCADE
);