Database basic CRUD (#27)

* started schema

* db schemas beginning

* first db schema gen

* added sqlc generation with go generate and sqlite driver

* i think these dependencies are needed

* added IF NOT EXISTS to create and CRUD for each table

* fixed missing columns

* added missing field

* fixed code generation with sqlc
This commit is contained in:
2025-04-16 13:45:44 -05:00
committed by GitHub
parent d062644a3e
commit b24e734ae3
36 changed files with 979 additions and 5 deletions
@@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS artist_credit (
id int PRIMARY KEY,
text string NOT NULL
);
@@ -0,0 +1,7 @@
CREATE TABLE IF NOT EXISTS artist_credit_artist (
id int PRIMARY KEY,
artist_id int NOT NULL,
credit_id int NOT NULL,
FOREIGN KEY(artist_id) REFERENCES artists(id),
FOREIGN KEY(credit_id) REFERENCES artist_credit(id)
);
+4
View File
@@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS artists (
id int PRIMARY KEY,
name text NOT NULL
);
@@ -0,0 +1,9 @@
CREATE TABLE IF NOT EXISTS audio_files (
id int PRIMARY KEY,
file_path text NOT NULL UNIQUE,
length_milliseconds int NOT NULL,
file_type_id int NOT NULL,
recording_id int NOT NULL,
FOREIGN KEY(file_type_id) REFERENCES file_types(id),
FOREIGN KEY(recording_id) REFERENCES recordings(id)
);
@@ -0,0 +1,7 @@
CREATE TABLE IF NOT EXISTS cover_art (
id int PRIMARY KEY,
is_embedded bool NOT NULL DEFAULT(false),
file_path text NOT NULL,
file_type_id int NOT NULL,
FOREIGN KEY(file_type_id) REFERENCES file_types(id)
);
@@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS file_types (
id INTEGER PRIMARY KEY,
extension text NOT NULL UNIQUE
);
@@ -0,0 +1,7 @@
CREATE TABLE IF NOT EXISTS recordings (
id int PRIMARY KEY,
name text NOT NULL,
artist_credit_id int NOT NULL,
FOREIGN KEY(artist_credit_id) REFERENCES artist_credit(id)
);
@@ -0,0 +1,8 @@
CREATE TABLE IF NOT EXISTS release_group_recordings (
id int PRIMARY KEY,
release_group_id int NOT NULL,
recording_id int NOT NULL,
FOREIGN KEY(release_group_id) REFERENCES release_groups(id),
FOREIGN KEY(recording_id) REFERENCES recordings(id)
);
@@ -0,0 +1,6 @@
CREATE TABLE IF NOT EXISTS release_groups (
id int PRIMARY KEY,
name text NOT NULL,
cover_art_id int NOT NULL,
FOREIGN KEY(cover_art_id) REFERENCES cover_art(id)
);