Create songs table

This commit is contained in:
Ethan Girouard 2024-02-08 18:38:36 -05:00
parent bf99dac25c
commit 319958f264
Signed by: eta357
GPG Key ID: 7BCDC36DFD11C146
3 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,2 @@
DROP TABLE song_artists;
DROP TABLE songs;

View File

@ -0,0 +1,16 @@
CREATE TABLE songs (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
title VARCHAR NOT NULL,
album_id INTEGER REFERENCES albums(id),
track INTEGER,
duration INTEGER NOT NULL,
release_date DATE,
storage_path VARCHAR NOT NULL,
image_path VARCHAR
);
CREATE TABLE song_artists (
song_id INTEGER REFERENCES songs(id) ON DELETE CASCADE NOT NULL,
artist_id INTEGER REFERENCES artists(id) ON DELETE CASCADE NOT NULL,
PRIMARY KEY (song_id, artist_id)
);

View File

@ -22,6 +22,26 @@ diesel::table! {
}
}
diesel::table! {
song_artists (song_id, artist_id) {
song_id -> Int4,
artist_id -> Int4,
}
}
diesel::table! {
songs (id) {
id -> Int4,
title -> Varchar,
album_id -> Nullable<Int4>,
track -> Nullable<Int4>,
duration -> Int4,
release_date -> Nullable<Date>,
storage_path -> Varchar,
image_path -> Nullable<Varchar>,
}
}
diesel::table! {
users (id) {
id -> Int4,
@ -34,10 +54,15 @@ diesel::table! {
diesel::joinable!(album_artists -> albums (album_id));
diesel::joinable!(album_artists -> artists (artist_id));
diesel::joinable!(song_artists -> artists (artist_id));
diesel::joinable!(song_artists -> songs (song_id));
diesel::joinable!(songs -> albums (album_id));
diesel::allow_tables_to_appear_in_same_query!(
album_artists,
albums,
artists,
song_artists,
songs,
users,
);