mirror of
https://github.com/openvk/openvk
synced 2024-11-11 01:19:53 +03:00
101 lines
6.6 KiB
MySQL
101 lines
6.6 KiB
MySQL
|
-- Apply these two commands if you installed OpenVK before 12th November 2023 OR if it's just doesn't work out of box, then apply this file again
|
||
|
-- DROP TABLE `audios`;
|
||
|
-- DROP TABLE `audio_relations`;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `audios` (
|
||
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||
|
`owner` bigint unsigned NOT NULL,
|
||
|
`virtual_id` bigint unsigned NOT NULL,
|
||
|
`created` bigint unsigned NOT NULL,
|
||
|
`edited` bigint unsigned DEFAULT NULL,
|
||
|
`hash` char(128) NOT NULL,
|
||
|
`length` smallint unsigned NOT NULL,
|
||
|
`segment_size` decimal(20,6) NOT NULL DEFAULT '6.000000' COMMENT 'Size in seconds of each segment',
|
||
|
`kid` binary(16) NOT NULL,
|
||
|
`key` binary(16) NOT NULL,
|
||
|
`token` binary(28) NOT NULL COMMENT 'Key to access original file',
|
||
|
`listens` bigint unsigned NOT NULL DEFAULT '0',
|
||
|
`performer` varchar(256) NOT NULL,
|
||
|
`name` varchar(256) NOT NULL,
|
||
|
`lyrics` text,
|
||
|
`genre` enum('Blues','Big Band','Classic Rock','Chorus','Country','Easy Listening','Dance','Acoustic','Disco','Humour','Funk','Speech','Grunge','Chanson','Hip-Hop','Opera','Jazz','Chamber Music','Metal','Sonata','New Age','Symphony','Oldies','Booty Bass','Other','Primus','Pop','Porn Groove','R&B','Satire','Rap','Slow Jam','Reggae','Club','Rock','Tango','Techno','Samba','Industrial','Folklore','Alternative','Ballad','Ska','Power Ballad','Death Metal','Rhythmic Soul','Pranks','Freestyle','Soundtrack','Duet','Euro-Techno','Punk Rock','Ambient','Drum Solo','Trip-Hop','A Cappella','Vocal','Euro-House','Jazz+Funk','Dance Hall','Fusion','Goa','Trance','Drum & Bass','Classical','Club-House','Instrumental','Hardcore','Acid','Terror','House','Indie','Game','BritPop','Sound Clip','Negerpunk','Gospel','Polsk Punk','Noise','Beat','AlternRock','Christian Gangsta Rap','Bass','Heavy Metal','Soul','Black Metal','Punk','Crossover','Space','Contemporary Christian','Meditative','Christian Rock','Instrumental Pop','Merengue','Instrumental Rock','Salsa','Ethnic','Thrash Metal','Gothic','Anime','Darkwave','JPop','Techno-Industrial','Synthpop','Electronic','Abstract','Pop-Folk','Art Rock','Eurodance','Baroque','Dream','Bhangra','Southern Rock','Big Beat','Comedy','Breakbeat','Cult','Chillout','Gangsta Rap','Downtempo','Top 40','Dub','Christian Rap','EBM','Pop / Funk','Eclectic','Jungle','Electro','Native American','Electroclash','Cabaret','Emo','New Wave','Experimental','Psychedelic','Garage','Rave','Global','Showtunes','IDM','Trailer','Illbient','Lo-Fi','Industro-Goth','Tribal','Jam Band','Acid Punk','Krautrock','Acid Jazz','Leftfield','Polka','Lounge','Retro','Math Rock','Musical','New Romantic','Rock & Roll','Nu-Breakz','Hard Rock','Post-Punk','Folk','Post-Rock','Folk-Rock','Psytrance','National Folk','Shoegaze','Swing','Space Rock','Fast Fusion','Trop Rock','Bebob','World Music','Latin','Neoclassical','Revival','Audiobook','Celtic','Audio Theatre','Bluegrass','Neue Deutsche Welle','Avantgarde','Podcast','Gothic Rock','Indie Rock','Progressive Rock','G-Funk','Psychedelic Rock','Dubstep','Symphonic Rock','Garage Rock','Slow Rock','Psybient','Psychobilly','Touhou') DEFAULT NULL,
|
||
|
`explicit` tinyint(1) NOT NULL DEFAULT '0',
|
||
|
`withdrawn` tinyint(1) NOT NULL DEFAULT '0',
|
||
|
`processed` tinyint unsigned NOT NULL DEFAULT '0',
|
||
|
`checked` bigint NOT NULL DEFAULT '0' COMMENT 'Last time the audio availability was checked',
|
||
|
`unlisted` tinyint(1) NOT NULL DEFAULT '0',
|
||
|
`deleted` tinyint(1) NOT NULL DEFAULT '0',
|
||
|
PRIMARY KEY (`id`),
|
||
|
KEY `owner_virtual_id` (`owner`,`virtual_id`),
|
||
|
KEY `genre` (`genre`),
|
||
|
KEY `unlisted` (`unlisted`),
|
||
|
KEY `listens` (`listens`),
|
||
|
KEY `deleted` (`deleted`),
|
||
|
KEY `length` (`length`),
|
||
|
KEY `listens_genre` (`listens`,`genre`),
|
||
|
FULLTEXT KEY `performer_name` (`performer`,`name`),
|
||
|
FULLTEXT KEY `lyrics` (`lyrics`),
|
||
|
FULLTEXT KEY `performer` (`performer`)
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `audio_listens` (
|
||
|
`entity` bigint NOT NULL,
|
||
|
`audio` bigint unsigned NOT NULL,
|
||
|
`time` bigint unsigned NOT NULL,
|
||
|
`index` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'Workaround for Nette DBE bug',
|
||
|
`playlist` bigint(20) UNSIGNED DEFAULT NULL,
|
||
|
PRIMARY KEY (`index`),
|
||
|
KEY `audio` (`audio`),
|
||
|
KEY `user` (`entity`) USING BTREE,
|
||
|
KEY `user_time` (`entity`,`time`) USING BTREE
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `audio_relations` (
|
||
|
`entity` bigint NOT NULL,
|
||
|
`audio` bigint unsigned NOT NULL,
|
||
|
`index` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||
|
PRIMARY KEY (`index`),
|
||
|
KEY `user` (`entity`) USING BTREE,
|
||
|
KEY `entity_audio` (`entity`,`audio`)
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `playlists` (
|
||
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||
|
`owner` bigint NOT NULL,
|
||
|
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
|
||
|
`description` varchar(2048) DEFAULT NULL,
|
||
|
`cover_photo_id` bigint unsigned DEFAULT NULL,
|
||
|
`length` int unsigned NOT NULL DEFAULT '0',
|
||
|
`special_type` tinyint unsigned NOT NULL DEFAULT '0',
|
||
|
`created` bigint unsigned DEFAULT NULL,
|
||
|
`listens` bigint(20) unsigned NOT NULL DEFAULT 0,
|
||
|
`edited` bigint unsigned DEFAULT NULL,
|
||
|
`deleted` tinyint unsigned DEFAULT '0',
|
||
|
PRIMARY KEY (`id`),
|
||
|
KEY `owner_deleted` (`owner`,`deleted`),
|
||
|
FULLTEXT KEY `title_description` (`name`,`description`),
|
||
|
FULLTEXT KEY `title` (`name`)
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `playlist_imports` (
|
||
|
`entity` bigint NOT NULL,
|
||
|
`playlist` bigint unsigned NOT NULL,
|
||
|
`index` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||
|
PRIMARY KEY (`index`) USING BTREE,
|
||
|
KEY `user` (`entity`) USING BTREE,
|
||
|
KEY `entity_audio` (`entity`,`playlist`) USING BTREE
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS `playlist_relations` (
|
||
|
`collection` bigint unsigned NOT NULL,
|
||
|
`media` bigint unsigned NOT NULL,
|
||
|
`index` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||
|
PRIMARY KEY (`index`) USING BTREE,
|
||
|
KEY `playlist` (`collection`) USING BTREE,
|
||
|
KEY `audio` (`media`) USING BTREE
|
||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
|
||
|
|
||
|
ALTER TABLE `groups` ADD `everyone_can_upload_audios` TINYINT(1) NOT NULL DEFAULT '0' AFTER `backdrop_2`;
|
||
|
ALTER TABLE `profiles` ADD `last_played_track` BIGINT(20) UNSIGNED NULL DEFAULT NULL AFTER `client_name`, ADD `audio_broadcast_enabled` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `last_played_track`;
|
||
|
ALTER TABLE `groups` ADD `last_played_track` BIGINT(20) UNSIGNED NULL DEFAULT NULL AFTER `everyone_can_upload_audios`, ADD `audio_broadcast_enabled` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `last_played_track`;
|