Refactored to use database
#5 Switched to use maria database to store song information #7 Added spring and hibernate support #8 Added song upload functionality
This commit is contained in:
17
src/main/resources/META-INF/persistence.xml
Normal file
17
src/main/resources/META-INF/persistence.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
|
||||
<persistence-unit name="net.locusworks.discord_eight-track_jar_0.0.1-SNAPSHOTPU" transaction-type="RESOURCE_LOCAL">
|
||||
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
|
||||
<class>net.locusworks.discord.eighttrack.database.entities.GuildSong</class>
|
||||
<class>net.locusworks.discord.eighttrack.database.entities.GuildPlaylist</class>
|
||||
<class>net.locusworks.discord.eighttrack.database.entities.DiscordGuild</class>
|
||||
<class>net.locusworks.discord.eighttrack.database.entities.Song</class>
|
||||
<class>net.locusworks.discord.eighttrack.database.entities.GuildPlaylistSong</class>
|
||||
<properties>
|
||||
<property name="javax.persistence.jdbc.url" value="jdbc:mariadb://devops.locusworks.net:3306/eighttrack"/>
|
||||
<property name="javax.persistence.jdbc.user" value="root"/>
|
||||
<property name="javax.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver"/>
|
||||
<property name="javax.persistence.jdbc.password" value="0a0wNt6aX4e66LNhA5uKLdnnN"/>
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
</persistence>
|
||||
@@ -6,3 +6,58 @@ CREATE TABLE eighttrack.discord_guild (
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY guild_UN (guild_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Information about discord guild';
|
||||
|
||||
CREATE TABLE eighttrack.song (
|
||||
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key',
|
||||
uuid varchar(100) NOT NULL COMMENT 'Unique Identifier',
|
||||
title varchar(500) NOT NULL COMMENT 'title of song',
|
||||
artist varchar(500) DEFAULT NULL COMMENT 'songs artist',
|
||||
album varchar(500) DEFAULT NULL COMMENT 'songs album',
|
||||
genre varchar(500) DEFAULT NULL COMMENT 'songs genre',
|
||||
track_number varchar(100) DEFAULT NULL COMMENT 'track number',
|
||||
disc_number varchar(100) DEFAULT NULL COMMENT 'disc number',
|
||||
release_year varchar(100) DEFAULT NULL COMMENT 'release year',
|
||||
duration bigint(20) DEFAULT NULL COMMENT 'songs duration',
|
||||
file_path varchar(5000) NOT NULL COMMENT 'file location on local file system',
|
||||
file_hash varchar(40) NOT NULL COMMENT 'sha1 hash of file',
|
||||
date_added timestamp NULL DEFAULT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY song_uuid_UN (uuid),
|
||||
UNIQUE KEY song_file_hash_UN (file_hash)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE eighttrack.guild_song (
|
||||
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
|
||||
guild bigint(20) NOT NULL COMMENT 'guild the song belongs to',
|
||||
song bigint(20) NOT NULL COMMENT 'the song',
|
||||
date_added timestamp NULL DEFAULT NULL COMMENT 'date added',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY guild_song_UN (guild,song),
|
||||
KEY guild_song_FK_1 (song),
|
||||
CONSTRAINT guild_song_FK FOREIGN KEY (guild) REFERENCES eighttrack.discord_guild (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT guild_song_FK_1 FOREIGN KEY (song) REFERENCES eighttrack.song (id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE eighttrack.guild_playlist (
|
||||
id bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
guild bigint(20) NOT NULL,
|
||||
userId bigint(20) NOT NULL,
|
||||
playlist varchar(500) NOT NULL,
|
||||
date_added timestamp NULL DEFAULT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY guild_playlist_UN (guild,userId,playlist),
|
||||
CONSTRAINT guild_playlist_FK FOREIGN KEY (guild) REFERENCES eighttrack.discord_guild (id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
|
||||
CREATE TABLE eighttrack.guild_playlist_song (
|
||||
id bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
guild_playlist bigint(20) NOT NULL,
|
||||
guild_song bigint(20) NOT NULL,
|
||||
date_added timestamp NULL DEFAULT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY guild_playlist_song_UN (guild_playlist,guild_song),
|
||||
KEY guild_playlist_song_FK_1 (guild_song),
|
||||
CONSTRAINT guild_playlist_song_FK FOREIGN KEY (guild_playlist) REFERENCES eighttrack.guild_playlist (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT guild_playlist_song_FK_1 FOREIGN KEY (guild_song) REFERENCES eighttrack.guild_song (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
Reference in New Issue
Block a user