renamed albums to music releases
Signed-off-by: ari melody <ari@arimelody.me>
This commit is contained in:
parent
9d56ca63af
commit
6ec813dd58
4 changed files with 135 additions and 135 deletions
38
db.go
38
db.go
|
@ -12,13 +12,13 @@ import (
|
|||
)
|
||||
|
||||
var schema =
|
||||
`CREATE TABLE IF NOT EXISTS Artists (
|
||||
`CREATE TABLE IF NOT EXISTS artists (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT,
|
||||
website TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Albums (
|
||||
CREATE TABLE IF NOT EXISTS musicreleases (
|
||||
id VARCHAR(64) PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
type TEXT,
|
||||
|
@ -30,19 +30,19 @@ CREATE TABLE IF NOT EXISTS Albums (
|
|||
lyrics TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AlbumLinks (
|
||||
album VARCHAR(64) REFERENCES Albums(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CREATE TABLE IF NOT EXISTS musiclinks (
|
||||
album VARCHAR(64) REFERENCES musicreleases(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
name TEXT,
|
||||
url TEXT,
|
||||
CONSTRAINT albumlinks_pk PRIMARY KEY (album, name)
|
||||
CONSTRAINT musiclinks_pk PRIMARY KEY (album, name)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AlbumCredits (
|
||||
album VARCHAR(64) REFERENCES Albums(ID) ON DELETE CASCADE,
|
||||
artist TEXT REFERENCES Artists(id) ON DELETE CASCADE,
|
||||
CREATE TABLE IF NOT EXISTS musiccredits (
|
||||
album VARCHAR(64) REFERENCES musicreleases(ID) ON DELETE CASCADE,
|
||||
artist TEXT REFERENCES artists(id) ON DELETE CASCADE,
|
||||
role TEXT,
|
||||
meta BOOLEAN,
|
||||
constraint albumcredits_pk PRIMARY KEY (album, artist, role)
|
||||
constraint musiccredits_pk PRIMARY KEY (album, artist, role)
|
||||
);`
|
||||
|
||||
func PushArtist(db *sqlx.DB, artist music.Artist) {
|
||||
|
@ -57,21 +57,21 @@ func PushArtist(db *sqlx.DB, artist music.Artist) {
|
|||
fmt.Printf("done!\n")
|
||||
}
|
||||
|
||||
func PushAlbum(db *sqlx.DB, album music.Album) {
|
||||
fmt.Printf("syncing album [%s] to database...", album.Id)
|
||||
func PushRelease(db *sqlx.DB, release music.MusicRelease) {
|
||||
fmt.Printf("syncing release [%s] to database...", release.Id)
|
||||
|
||||
tx := db.MustBegin()
|
||||
tx.MustExec("INSERT INTO albums (id, title, release_date, artwork, buyname, buylink, description, lyrics) VALUES ($1, $2, $3, $4, $5, $6, $7, $8) "+
|
||||
tx.MustExec("INSERT INTO musicreleases (id, title, release_date, artwork, buyname, buylink, description, lyrics) VALUES ($1, $2, $3, $4, $5, $6, $7, $8) "+
|
||||
"ON CONFLICT (id) DO UPDATE SET title=$2, release_date=$3, artwork=$4, buyname=$5, buylink=$6, description=$7, lyrics=$8",
|
||||
&album.Id, &album.Title, album.ReleaseDate.Format("2-Jan-2006"), &album.Artwork, &album.Buyname, &album.Buylink, &album.Description, &album.Lyrics)
|
||||
&release.Id, &release.Title, release.ReleaseDate.Format("2-Jan-2006"), &release.Artwork, &release.Buyname, &release.Buylink, &release.Description, &release.Lyrics)
|
||||
|
||||
for _, link := range album.Links {
|
||||
tx.MustExec("INSERT INTO albumlinks (album, name, url) VALUES ($1, $2, $3) ON CONFLICT (album, name) DO UPDATE SET url=$3",
|
||||
&album.Id, &link.Name, &link.Url)
|
||||
for _, link := range release.Links {
|
||||
tx.MustExec("INSERT INTO musiclinks (album, name, url) VALUES ($1, $2, $3) ON CONFLICT (album, name) DO UPDATE SET url=$3",
|
||||
&release.Id, &link.Name, &link.Url)
|
||||
}
|
||||
for _, credit := range album.Credits {
|
||||
tx.MustExec("INSERT INTO albumcredits (album, artist, role, meta) VALUES ($1, $2, $3, $4) ON CONFLICT DO NOTHING",
|
||||
&album.Id, &credit.Artist.Id, &credit.Role, &credit.Meta)
|
||||
for _, credit := range release.Credits {
|
||||
tx.MustExec("INSERT INTO musiccredits (album, artist, role, meta) VALUES ($1, $2, $3, $4) ON CONFLICT DO NOTHING",
|
||||
&release.Id, &credit.Artist.Id, &credit.Role, &credit.Meta)
|
||||
}
|
||||
|
||||
tx.Commit()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue