mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 09:18:54 +00:00
1328 lines
53 KiB
SQL
Executable File
1328 lines
53 KiB
SQL
Executable File
DROP TABLE IF EXISTS collections;
|
|
CREATE TABLE collections (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
subject VARCHAR(255) NOT NULL DEFAULT '',
|
|
fromname VARCHAR(255) NOT NULL DEFAULT '',
|
|
date DATETIME DEFAULT NULL,
|
|
xref VARCHAR(2000) NOT NULL DEFAULT '',
|
|
totalfiles INT(11) UNSIGNED NOT NULL DEFAULT '0',
|
|
groups_id INT(11) UNSIGNED NOT NULL DEFAULT '0',
|
|
collectionhash VARCHAR(255) NOT NULL DEFAULT '0',
|
|
collection_regexes_id INT SIGNED NOT NULL DEFAULT '0' COMMENT 'FK to collection_regexes.id',
|
|
dateadded DATETIME DEFAULT NULL,
|
|
added TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
filecheck TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
|
|
filesize BIGINT UNSIGNED NOT NULL DEFAULT '0',
|
|
releases_id INT NULL,
|
|
noise CHAR(32) NOT NULL DEFAULT '',
|
|
PRIMARY KEY (id),
|
|
INDEX fromname (fromname),
|
|
INDEX date (date),
|
|
INDEX groups_id (groups_id),
|
|
INDEX ix_collection_filecheck (filecheck),
|
|
INDEX ix_collection_dateadded (dateadded),
|
|
INDEX ix_collection_releaseid (releases_id),
|
|
UNIQUE INDEX ix_collection_collectionhash (collectionhash)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS releases;
|
|
CREATE TABLE releases (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
name VARCHAR(255) NOT NULL DEFAULT '',
|
|
searchname VARCHAR(255) NOT NULL DEFAULT '',
|
|
totalpart INT DEFAULT '0',
|
|
groups_id INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to groups.id',
|
|
size BIGINT UNSIGNED NOT NULL DEFAULT '0',
|
|
postdate DATETIME DEFAULT NULL,
|
|
adddate DATETIME DEFAULT NULL,
|
|
updatetime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
gid VARCHAR(32) NULL,
|
|
guid VARCHAR(40) NOT NULL,
|
|
leftguid CHAR(1) NOT NULL COMMENT 'The first letter of the release guid',
|
|
fromname VARCHAR(255) NULL,
|
|
completion FLOAT NOT NULL DEFAULT '0',
|
|
categories_id INT NOT NULL DEFAULT '0010',
|
|
videos_id MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to videos.id of the parent series.',
|
|
tv_episodes_id MEDIUMINT(11) SIGNED NOT NULL DEFAULT '0' COMMENT 'FK to tv_episodes.id for the episode.',
|
|
imdbid MEDIUMINT(7) UNSIGNED ZEROFILL NULL,
|
|
xxxinfo_id INT SIGNED NOT NULL DEFAULT '0',
|
|
musicinfo_id INT(11) SIGNED NULL COMMENT 'FK to musicinfo.id',
|
|
consoleinfo_id INT(11) SIGNED NULL COMMENT 'FK to consoleinfo.id',
|
|
gamesinfo_id INT SIGNED NOT NULL DEFAULT '0',
|
|
bookinfo_id INT(11) SIGNED NULL COMMENT 'FK to bookinfo.id',
|
|
anidbid INT NULL COMMENT 'FK to anidb_titles.anidbid',
|
|
predb_id INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to predb.id',
|
|
grabs INT UNSIGNED NOT NULL DEFAULT '0',
|
|
comments INT NOT NULL DEFAULT '0',
|
|
passwordstatus TINYINT NOT NULL DEFAULT '0',
|
|
rarinnerfilecount INT NOT NULL DEFAULT '0',
|
|
haspreview TINYINT NOT NULL DEFAULT '0',
|
|
nfostatus TINYINT NOT NULL DEFAULT '0',
|
|
jpgstatus TINYINT(1) NOT NULL DEFAULT '0',
|
|
videostatus TINYINT(1) NOT NULL DEFAULT '0',
|
|
audiostatus TINYINT(1) NOT NULL DEFAULT '0',
|
|
dehashstatus TINYINT(1) NOT NULL DEFAULT '0',
|
|
reqidstatus TINYINT(1) NOT NULL DEFAULT '0',
|
|
nzb_guid BINARY(16) NULL,
|
|
nzbstatus TINYINT(1) NOT NULL DEFAULT '0',
|
|
iscategorized TINYINT(1) NOT NULL DEFAULT '0',
|
|
isrenamed TINYINT(1) NOT NULL DEFAULT '0',
|
|
ishashed TINYINT(1) NOT NULL DEFAULT '0',
|
|
proc_pp TINYINT(1) NOT NULL DEFAULT '0',
|
|
proc_sorter TINYINT(1) NOT NULL DEFAULT '0',
|
|
proc_par2 TINYINT(1) NOT NULL DEFAULT '0',
|
|
proc_nfo TINYINT(1) NOT NULL DEFAULT '0',
|
|
proc_files TINYINT(1) NOT NULL DEFAULT '0',
|
|
proc_uid TINYINT(1) NOT NULL DEFAULT '0',
|
|
proc_srr TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Has the release been srr
|
|
processed',
|
|
proc_hash16k TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Has the release been hash16k
|
|
processed',
|
|
PRIMARY KEY (id, categories_id),
|
|
INDEX ix_releases_name (name),
|
|
INDEX ix_releases_groupsid (groups_id,passwordstatus),
|
|
INDEX ix_releases_postdate_searchname (postdate,searchname),
|
|
INDEX ix_releases_guid (guid),
|
|
INDEX ix_releases_leftguid (leftguid ASC, predb_id),
|
|
INDEX ix_releases_nzb_guid (nzb_guid),
|
|
INDEX ix_releases_videos_id (videos_id),
|
|
INDEX ix_releases_tv_episodes_id (tv_episodes_id),
|
|
INDEX ix_releases_imdbid (imdbid),
|
|
INDEX ix_releases_xxxinfo_id (xxxinfo_id),
|
|
INDEX ix_releases_musicinfo_id (musicinfo_id,passwordstatus),
|
|
INDEX ix_releases_consoleinfo_id (consoleinfo_id),
|
|
INDEX ix_releases_gamesinfo_id (gamesinfo_id),
|
|
INDEX ix_releases_bookinfo_id (bookinfo_id),
|
|
INDEX ix_releases_anidbid (anidbid),
|
|
INDEX ix_releases_predb_id_searchname (predb_id,searchname),
|
|
INDEX ix_releases_haspreview_passwordstatus (haspreview,passwordstatus),
|
|
INDEX ix_releases_passwordstatus (passwordstatus),
|
|
INDEX ix_releases_nfostatus (nfostatus,size),
|
|
INDEX ix_releases_dehashstatus (dehashstatus,ishashed)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1
|
|
|
|
DROP TABLE IF EXISTS users;
|
|
CREATE TABLE users (
|
|
id INT(16) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
username VARCHAR(50) NOT NULL,
|
|
firstname VARCHAR(255) DEFAULT NULL,
|
|
lastname VARCHAR(255) DEFAULT NULL,
|
|
email VARCHAR(255) NOT NULL,
|
|
password VARCHAR(255) NOT NULL,
|
|
user_roles_id INT NOT NULL DEFAULT '1' COMMENT 'FK to user_roles.id',
|
|
host VARCHAR(40) NULL,
|
|
grabs INT NOT NULL DEFAULT '0',
|
|
rsstoken VARCHAR(64) NOT NULL,
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
resetguid VARCHAR(50) NULL,
|
|
lastlogin DATETIME DEFAULT NULL,
|
|
apiaccess DATETIME DEFAULT NULL,
|
|
invites INT NOT NULL DEFAULT '0',
|
|
invitedby INT NULL,
|
|
movieview INT NOT NULL DEFAULT '1',
|
|
xxxview INT NOT NULL DEFAULT '1',
|
|
musicview INT NOT NULL DEFAULT '1',
|
|
consoleview INT NOT NULL DEFAULT '1',
|
|
bookview INT NOT NULL DEFAULT '1',
|
|
gameview INT NOT NULL DEFAULT 1,
|
|
saburl VARCHAR(255) NULL DEFAULT NULL,
|
|
sabapikey VARCHAR(255) NULL DEFAULT NULL,
|
|
sabapikeytype TINYINT(1) NULL DEFAULT NULL,
|
|
sabpriority TINYINT(1) NULL DEFAULT NULL,
|
|
queuetype TINYINT(1) NOT NULL DEFAULT '1' COMMENT 'Type of queue, Sab or NZBGet',
|
|
nzbgeturl VARCHAR(255) NULL DEFAULT NULL,
|
|
nzbgetusername VARCHAR(255) NULL DEFAULT NULL,
|
|
nzbgetpassword VARCHAR(255) NULL DEFAULT NULL,
|
|
nzbvortex_api_key VARCHAR(10) NULL DEFAULT NULL ,
|
|
nzbvortex_server_url VARCHAR(255) NULL DEFAULT NULL,
|
|
userseed VARCHAR(50) NOT NULL,
|
|
notes VARCHAR(255) NOT NULL,
|
|
cp_url VARCHAR(255) NULL DEFAULT NULL,
|
|
cp_api VARCHAR(255) NULL DEFAULT NULL,
|
|
style VARCHAR(255) NULL DEFAULT NULL,
|
|
rolechangedate DATETIME NULL DEFAULT NULL COMMENT 'When does the role expire',
|
|
PRIMARY KEY (id),
|
|
INDEX ix_user_roles (user_roles_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS anidb_episodes;
|
|
CREATE TABLE anidb_episodes (
|
|
anidbid INT(10) UNSIGNED NOT NULL
|
|
COMMENT 'ID of title from AniDB',
|
|
episodeid INT(10) UNSIGNED NOT NULL DEFAULT '0'
|
|
COMMENT 'anidb id for this episode',
|
|
episode_no SMALLINT(5) UNSIGNED NOT NULL
|
|
COMMENT 'Numeric version of episode (leave 0 for combined episodes).',
|
|
episode_title VARCHAR(255)
|
|
COLLATE utf8_unicode_ci NOT NULL
|
|
COMMENT 'Title of the episode (en, x-jat)',
|
|
airdate DATE NOT NULL,
|
|
PRIMARY KEY (anidbid, episodeid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS anidb_info;
|
|
CREATE TABLE anidb_info (
|
|
anidbid INT(10) UNSIGNED NOT NULL
|
|
COMMENT 'ID of title from AniDB',
|
|
type VARCHAR(32)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
startdate DATE DEFAULT NULL,
|
|
enddate DATE DEFAULT NULL,
|
|
updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
related VARCHAR(1024)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
similar VARCHAR(1024)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
creators VARCHAR(1024)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
description TEXT
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
rating VARCHAR(5)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
picture VARCHAR(255)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
categories VARCHAR(1024)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
characters VARCHAR(1024)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
PRIMARY KEY (anidbid),
|
|
KEY ix_anidb_info_datetime (startdate, enddate, updated)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS anidb_titles;
|
|
CREATE TABLE anidb_titles (
|
|
anidbid INT(10) UNSIGNED NOT NULL
|
|
COMMENT 'ID of title from AniDB',
|
|
type VARCHAR(25)
|
|
COLLATE utf8_unicode_ci NOT NULL
|
|
COMMENT 'type of title.',
|
|
lang VARCHAR(25)
|
|
COLLATE utf8_unicode_ci NOT NULL,
|
|
title VARCHAR(255)
|
|
COLLATE utf8_unicode_ci NOT NULL,
|
|
PRIMARY KEY (anidbid, type, lang, title)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS audio_data;
|
|
CREATE TABLE audio_data (
|
|
id INT(11) UNSIGNED AUTO_INCREMENT,
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
audioid INT(2) UNSIGNED NOT NULL,
|
|
audioformat VARCHAR(50) DEFAULT NULL,
|
|
audiomode VARCHAR(50) DEFAULT NULL,
|
|
audiobitratemode VARCHAR(50) DEFAULT NULL,
|
|
audiobitrate VARCHAR(10) DEFAULT NULL,
|
|
audiochannels VARCHAR(25) DEFAULT NULL,
|
|
audiosamplerate VARCHAR(25) DEFAULT NULL,
|
|
audiolibrary VARCHAR(50) DEFAULT NULL,
|
|
audiolanguage VARCHAR(50) DEFAULT NULL,
|
|
audiotitle VARCHAR(50) DEFAULT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX ix_releaseaudio_releaseid_audioid (releases_id, audioid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS binaries;
|
|
CREATE TABLE binaries (
|
|
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
name VARCHAR(1000) NOT NULL DEFAULT '',
|
|
collections_id INT(11) UNSIGNED NOT NULL DEFAULT 0,
|
|
filenumber INT UNSIGNED NOT NULL DEFAULT '0',
|
|
totalparts INT(11) UNSIGNED NOT NULL DEFAULT 0,
|
|
currentparts INT UNSIGNED NOT NULL DEFAULT 0,
|
|
binaryhash BINARY(16) NOT NULL DEFAULT '0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
|
|
partcheck TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
|
|
partsize BIGINT UNSIGNED NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_Collections FOREIGN KEY (collections_id)
|
|
REFERENCES collections(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
UNIQUE INDEX ix_binaries_binaryhash (binaryhash),
|
|
INDEX ix_binaries_partcheck (partcheck),
|
|
INDEX ix_binaries_collection (collections_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS bookinfo;
|
|
CREATE TABLE bookinfo (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
title VARCHAR(255) NOT NULL,
|
|
author VARCHAR(255) NOT NULL,
|
|
asin VARCHAR(128) DEFAULT NULL,
|
|
isbn VARCHAR(128) DEFAULT NULL,
|
|
ean VARCHAR(128) DEFAULT NULL,
|
|
url VARCHAR(1000) DEFAULT NULL,
|
|
salesrank INT(10) UNSIGNED DEFAULT NULL,
|
|
publisher VARCHAR(255) DEFAULT NULL,
|
|
publishdate DATETIME DEFAULT NULL,
|
|
pages VARCHAR(128) DEFAULT NULL,
|
|
overview VARCHAR(3000) DEFAULT NULL,
|
|
genre VARCHAR(255) NOT NULL,
|
|
cover TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FULLTEXT INDEX ix_bookinfo_author_title_ft (author, title),
|
|
UNIQUE INDEX ix_bookinfo_asin (asin)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS consoleinfo;
|
|
CREATE TABLE consoleinfo (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
title VARCHAR(255) NOT NULL,
|
|
asin VARCHAR(128) DEFAULT NULL,
|
|
url VARCHAR(1000) DEFAULT NULL,
|
|
salesrank INT(10) UNSIGNED DEFAULT NULL,
|
|
platform VARCHAR(255) DEFAULT NULL,
|
|
publisher VARCHAR(255) DEFAULT NULL,
|
|
genres_id INT(10) NULL DEFAULT NULL,
|
|
esrb VARCHAR(255) NULL DEFAULT NULL,
|
|
releasedate DATETIME DEFAULT NULL,
|
|
review VARCHAR(3000) DEFAULT NULL,
|
|
cover TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FULLTEXT INDEX ix_consoleinfo_title_platform_ft (title, platform),
|
|
UNIQUE INDEX ix_consoleinfo_asin (asin)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS dnzb_failures;
|
|
CREATE TABLE dnzb_failures (
|
|
release_id INT(11) UNSIGNED NOT NULL,
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
failed INT UNSIGNED NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (release_id, users_id),
|
|
CONSTRAINT FK_users_df FOREIGN KEY (users_id)
|
|
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
DROP TABLE IF EXISTS gamesinfo;
|
|
CREATE TABLE gamesinfo (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
title VARCHAR(255) NOT NULL,
|
|
asin VARCHAR(128) DEFAULT NULL,
|
|
url VARCHAR(1000) DEFAULT NULL,
|
|
publisher VARCHAR(255) DEFAULT NULL,
|
|
genres_id INT(10) NULL DEFAULT NULL,
|
|
esrb VARCHAR(255) NULL DEFAULT NULL,
|
|
releasedate DATETIME DEFAULT NULL,
|
|
review VARCHAR(3000) DEFAULT NULL,
|
|
cover TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
backdrop TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
trailer VARCHAR(1000) NOT NULL DEFAULT '',
|
|
classused VARCHAR(10) NOT NULL DEFAULT 'steam',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX ix_gamesinfo_asin (asin),
|
|
INDEX ix_title (title),
|
|
FULLTEXT INDEX ix_title_ft (title)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS invitations;
|
|
CREATE TABLE invitations (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
guid VARCHAR(50) NOT NULL,
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_users_inv FOREIGN KEY (users_id)
|
|
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS logging;
|
|
CREATE TABLE logging (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
time DATETIME DEFAULT NULL,
|
|
username VARCHAR(50) DEFAULT NULL,
|
|
host VARCHAR(40) DEFAULT NULL,
|
|
PRIMARY KEY (id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS missed_parts;
|
|
CREATE TABLE missed_parts (
|
|
id INT(16) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
numberid BIGINT UNSIGNED NOT NULL,
|
|
groups_id INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to groups.id',
|
|
attempts TINYINT(1) NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (id),
|
|
INDEX ix_missed_parts_attempts (attempts),
|
|
INDEX ix_missed_parts_groupid_attempts (groups_id, attempts),
|
|
INDEX ix_missed_parts_numberid_groupsid_attempts (numberid, groups_id, attempts),
|
|
UNIQUE INDEX ix_missed_parts_numberid_groupsid (numberid, groups_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS movieinfo;
|
|
CREATE TABLE movieinfo (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
imdbid MEDIUMINT(7) UNSIGNED ZEROFILL NOT NULL,
|
|
tmdbid INT(10) UNSIGNED NOT NULL DEFAULT 0,
|
|
title VARCHAR(255) NOT NULL DEFAULT '',
|
|
tagline VARCHAR(1024) NOT NULL DEFAULT '',
|
|
rating VARCHAR(4) NOT NULL DEFAULT '',
|
|
rtrating VARCHAR(10) NOT NULL DEFAULT '' COMMENT 'RottenTomatoes rating score',
|
|
plot VARCHAR(1024) NOT NULL DEFAULT '',
|
|
year VARCHAR(4) NOT NULL DEFAULT '',
|
|
genre VARCHAR(64) NOT NULL DEFAULT '',
|
|
type VARCHAR(32) NOT NULL DEFAULT '',
|
|
director VARCHAR(64) NOT NULL DEFAULT '',
|
|
actors VARCHAR(2000) NOT NULL DEFAULT '',
|
|
language VARCHAR(64) NOT NULL DEFAULT '',
|
|
cover TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
backdrop TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
trailer VARCHAR(255) NOT NULL DEFAULT '',
|
|
PRIMARY KEY (id),
|
|
INDEX ix_movieinfo_title (title),
|
|
UNIQUE INDEX ix_movieinfo_imdbid (imdbid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS musicinfo;
|
|
CREATE TABLE musicinfo (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
title VARCHAR(255) NOT NULL,
|
|
asin VARCHAR(128) NULL,
|
|
url VARCHAR(1000) NULL,
|
|
salesrank INT(10) UNSIGNED NULL,
|
|
artist VARCHAR(255) NULL,
|
|
publisher VARCHAR(255) NULL,
|
|
releasedate DATETIME NULL,
|
|
review VARCHAR(3000) NULL,
|
|
year VARCHAR(4) NOT NULL,
|
|
genres_id INT(10) NULL,
|
|
tracks VARCHAR(3000) NULL,
|
|
cover TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FULLTEXT INDEX ix_musicinfo_artist_title_ft (artist, title),
|
|
UNIQUE INDEX ix_musicinfo_asin (asin)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS multigroup_collections;
|
|
CREATE TABLE multigroup_collections (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
subject VARCHAR(255) NOT NULL DEFAULT '',
|
|
fromname VARCHAR(255) NOT NULL DEFAULT '',
|
|
date DATETIME DEFAULT NULL,
|
|
xref VARCHAR(2000) NOT NULL DEFAULT '',
|
|
totalfiles INT(11) UNSIGNED NOT NULL DEFAULT '0',
|
|
groups_id INT(11) UNSIGNED NOT NULL DEFAULT '0',
|
|
collectionhash VARCHAR(255) NOT NULL DEFAULT '0',
|
|
collection_regexes_id INT SIGNED NOT NULL DEFAULT '0' COMMENT 'FK to collection_regexes.id',
|
|
dateadded DATETIME DEFAULT NULL,
|
|
added TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
filecheck TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
|
|
filesize BIGINT UNSIGNED NOT NULL DEFAULT '0',
|
|
releases_id INT NULL,
|
|
noise CHAR(32) NOT NULL DEFAULT '',
|
|
PRIMARY KEY (id),
|
|
INDEX fromname (fromname),
|
|
INDEX date (date),
|
|
INDEX groups_id (groups_id),
|
|
INDEX ix_collection_filecheck (filecheck),
|
|
INDEX ix_collection_dateadded (dateadded),
|
|
INDEX ix_collection_releaseid (releases_id),
|
|
UNIQUE INDEX ix_collection_collectionhash (collectionhash)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS multigroup_posters;
|
|
CREATE TABLE multigroup_posters (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
poster VARCHAR(255) NOT NULL DEFAULT '',
|
|
PRIMARY KEY (id) ,
|
|
UNIQUE KEY (poster)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS par_hashes;
|
|
CREATE TABLE par_hashes (
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
hash VARCHAR(32) NOT NULL COMMENT 'hash_16k block of par2',
|
|
PRIMARY KEY (releases_id, hash)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
DROP TABLE IF EXISTS parts;
|
|
CREATE TABLE parts (
|
|
binaries_id BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
|
|
messageid VARCHAR(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
|
|
number BIGINT UNSIGNED NOT NULL DEFAULT '0',
|
|
partnumber MEDIUMINT UNSIGNED NOT NULL DEFAULT '0',
|
|
size MEDIUMINT UNSIGNED NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (binaries_id,number),
|
|
CONSTRAINT FK_binaries FOREIGN KEY (binaries_id)
|
|
REFERENCES binaries(id) ON DELETE CASCADE ON UPDATE CASCADE
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS predb;
|
|
CREATE TABLE predb (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Primary key',
|
|
title VARCHAR(255) NOT NULL DEFAULT '',
|
|
nfo VARCHAR(255) NULL,
|
|
size VARCHAR(50) NULL,
|
|
category VARCHAR(255) NULL,
|
|
predate DATETIME DEFAULT NULL,
|
|
source VARCHAR(50) NOT NULL DEFAULT '',
|
|
requestid INT(10) UNSIGNED NOT NULL DEFAULT '0',
|
|
groups_id INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to groups',
|
|
nuked TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Is this pre nuked? 0 no 2 yes 1 un nuked 3 mod nuked',
|
|
nukereason VARCHAR(255) NULL COMMENT 'If this pre is nuked, what is the reason?',
|
|
files VARCHAR(50) NULL COMMENT 'How many files does this pre have ?',
|
|
filename VARCHAR(255) NOT NULL DEFAULT '',
|
|
searched TINYINT(1) NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX ix_predb_title (title),
|
|
INDEX ix_predb_nfo (nfo),
|
|
INDEX ix_predb_predate (predate),
|
|
INDEX ix_predb_source (source),
|
|
INDEX ix_predb_requestid (requestid, groups_id),
|
|
INDEX ix_predb_filename (filename),
|
|
FULLTEXT INDEX ft_predb_filename (filename),
|
|
INDEX ix_predb_searched (searched)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS predb_hashes;
|
|
CREATE TABLE predb_hashes (
|
|
predb_id INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'id, of the predb entry, this hash belongs to',
|
|
hash VARBINARY(40) NOT NULL DEFAULT '',
|
|
PRIMARY KEY (hash)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8mb4
|
|
COLLATE = utf8mb4_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS predb_imports;
|
|
CREATE TABLE predb_imports (
|
|
title VARCHAR(255)
|
|
COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
|
nfo VARCHAR(255)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
size VARCHAR(50)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
category VARCHAR(255)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
predate DATETIME DEFAULT NULL,
|
|
source VARCHAR(50)
|
|
COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
|
requestid INT(10) UNSIGNED NOT NULL DEFAULT '0',
|
|
groups_id INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to groups',
|
|
nuked TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'Is this pre nuked? 0 no 2 yes 1 un nuked 3 mod nuked',
|
|
nukereason VARCHAR(255)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL
|
|
COMMENT 'If this pre is nuked, what is the reason?',
|
|
files VARCHAR(50)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL
|
|
COMMENT 'How many files does this pre have ?',
|
|
filename VARCHAR(255)
|
|
COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
|
searched TINYINT(1) NOT NULL DEFAULT '0',
|
|
groupname VARCHAR(255)
|
|
COLLATE utf8_unicode_ci DEFAULT NULL
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS release_comments;
|
|
CREATE TABLE release_comments (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
text VARCHAR(2000) NOT NULL DEFAULT '',
|
|
isvisible TINYINT(1) NOT NULL DEFAULT '1',
|
|
issynced TINYINT(1) NOT NULL DEFAULT '0',
|
|
gid VARCHAR(32) NULL,
|
|
cid VARCHAR(32) NULL,
|
|
text_hash VARCHAR(32) NOT NULL DEFAULT '',
|
|
username VARCHAR(255) NOT NULL DEFAULT '',
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
host VARCHAR(15) NULL,
|
|
shared TINYINT(1) NOT NULL DEFAULT '0',
|
|
shareid VARCHAR(40) NOT NULL DEFAULT '',
|
|
siteid VARCHAR(40) NOT NULL DEFAULT '',
|
|
sourceid BIGINT(20) UNSIGNED,
|
|
nzb_guid BINARY(16) NOT NULL DEFAULT '0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX ix_release_comments_hash_releases_id(text_hash, releases_id),
|
|
INDEX ix_releasecomment_releases_id (releases_id),
|
|
INDEX ix_releasecomment_userid (users_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS releases_groups;
|
|
CREATE TABLE releases_groups (
|
|
releases_id INT(11) UNSIGNED NOT NULL DEFAULT '0'
|
|
COMMENT 'FK to releases.id',
|
|
groups_id INT(11) UNSIGNED NOT NULL DEFAULT '0'
|
|
COMMENT 'FK to groups.id',
|
|
PRIMARY KEY (releases_id, groups_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
DROP TABLE IF EXISTS release_regexes;
|
|
CREATE TABLE release_regexes (
|
|
releases_id INT(11) UNSIGNED NOT NULL DEFAULT '0',
|
|
collection_regex_id INT(11) NOT NULL DEFAULT '0',
|
|
naming_regex_id INT(11) NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (releases_id, collection_regex_id, naming_regex_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS release_unique;
|
|
CREATE TABLE release_unique (
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id.',
|
|
uniqueid BINARY(16) NOT NULL DEFAULT '0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' COMMENT 'Unique_ID from mediainfo.',
|
|
PRIMARY KEY (releases_id, uniqueid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci;
|
|
|
|
|
|
DROP TABLE IF EXISTS releaseextrafull;
|
|
CREATE TABLE releaseextrafull (
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
mediainfo TEXT NULL,
|
|
PRIMARY KEY (releases_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS release_files;
|
|
CREATE TABLE release_files (
|
|
releases_id int(11) unsigned NOT NULL COMMENT 'FK to releases.id',
|
|
name varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
|
size bigint(20) unsigned NOT NULL DEFAULT '0',
|
|
ishashed tinyint(1) NOT NULL DEFAULT '0',
|
|
created_at datetime NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
passworded tinyint(1) unsigned NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (releases_id, name),
|
|
KEY ix_releasefiles_ishashed (ishashed)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
DROP TABLE IF EXISTS release_nfos;
|
|
CREATE TABLE release_nfos (
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
nfo BLOB NULL DEFAULT NULL,
|
|
PRIMARY KEY (releases_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = COMPRESSED;
|
|
|
|
|
|
DROP TABLE IF EXISTS release_search_data;
|
|
CREATE TABLE release_search_data (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
guid VARCHAR(50) NOT NULL,
|
|
name VARCHAR(255) NOT NULL DEFAULT '',
|
|
searchname VARCHAR(255) NOT NULL DEFAULT '',
|
|
fromname VARCHAR(255) NULL,
|
|
PRIMARY KEY (id),
|
|
FULLTEXT INDEX ix_releasesearch_name_ft (name),
|
|
FULLTEXT INDEX ix_releasesearch_searchname_ft (searchname),
|
|
FULLTEXT INDEX ix_releasesearch_fromname_ft (fromname),
|
|
INDEX ix_releasesearch_releases_id (releases_id),
|
|
INDEX ix_releasesearch_guid (guid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS release_subtitles;
|
|
CREATE TABLE release_subtitles (
|
|
id INT(11) UNSIGNED AUTO_INCREMENT,
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
subsid INT(2) UNSIGNED NOT NULL,
|
|
subslanguage VARCHAR(50) NOT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX ix_releasesubs_releases_id_subsid (releases_id, subsid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS sharing;
|
|
CREATE TABLE sharing (
|
|
site_guid VARCHAR(40) NOT NULL DEFAULT '',
|
|
site_name VARCHAR(255) NOT NULL DEFAULT '',
|
|
username VARCHAR(255) NOT NULL DEFAULT '',
|
|
enabled TINYINT(1) NOT NULL DEFAULT '0',
|
|
posting TINYINT(1) NOT NULL DEFAULT '0',
|
|
fetching TINYINT(1) NOT NULL DEFAULT '1',
|
|
auto_enable TINYINT(1) NOT NULL DEFAULT '1',
|
|
start_position TINYINT(1) NOT NULL DEFAULT '0',
|
|
hide_users TINYINT(1) NOT NULL DEFAULT '1',
|
|
last_article BIGINT UNSIGNED NOT NULL DEFAULT '0',
|
|
max_push MEDIUMINT UNSIGNED NOT NULL DEFAULT '40',
|
|
max_download MEDIUMINT UNSIGNED NOT NULL DEFAULT '150',
|
|
max_pull MEDIUMINT UNSIGNED NOT NULL DEFAULT '20000',
|
|
PRIMARY KEY (site_guid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS sharing_sites;
|
|
CREATE TABLE sharing_sites (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
site_name VARCHAR(255) NOT NULL DEFAULT '',
|
|
site_guid VARCHAR(40) NOT NULL DEFAULT '',
|
|
last_time DATETIME DEFAULT NULL,
|
|
first_time DATETIME DEFAULT NULL,
|
|
enabled TINYINT(1) NOT NULL DEFAULT '0',
|
|
comments MEDIUMINT UNSIGNED NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS short_groups;
|
|
CREATE TABLE short_groups (
|
|
id INT(11) NOT NULL AUTO_INCREMENT,
|
|
name VARCHAR(255) NOT NULL DEFAULT '',
|
|
first_record BIGINT UNSIGNED NOT NULL DEFAULT '0',
|
|
last_record BIGINT UNSIGNED NOT NULL DEFAULT '0',
|
|
updated DATETIME DEFAULT NULL,
|
|
PRIMARY KEY (id),
|
|
INDEX ix_shortgroups_name (name)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS steam_apps;
|
|
CREATE TABLE steam_apps (
|
|
name VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Steam application name',
|
|
appid INT(11) UNSIGNED NULL COMMENT 'Steam application id',
|
|
PRIMARY KEY (appid, name),
|
|
FULLTEXT INDEX ix_name_ft (name)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
DROP TABLE IF EXISTS tv_episodes;
|
|
CREATE TABLE tv_episodes (
|
|
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
videos_id MEDIUMINT(11) UNSIGNED NOT NULL COMMENT 'FK to videos.id of the parent series.',
|
|
series SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Number of series/season.',
|
|
episode SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Number of episode within series',
|
|
se_complete VARCHAR(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'String version of Series/Episode as taken from release subject (i.e. S02E21+22).',
|
|
title VARCHAR(180) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Title of the episode.',
|
|
firstaired DATE NOT NULL COMMENT 'Date of original airing/release.',
|
|
summary TEXT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Description/summary of the episode.',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY (videos_id, series, episode, firstaired)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS tv_info;
|
|
CREATE TABLE tv_info (
|
|
videos_id MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to video.id',
|
|
summary TEXT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Description/summary of the show.',
|
|
publisher VARCHAR(50) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The channel/network of production/release (ABC, BBC, Showtime, etc.).',
|
|
localzone VARCHAR(50) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'The linux tz style identifier',
|
|
image TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Does the video have a cover image?',
|
|
PRIMARY KEY (videos_id),
|
|
KEY ix_tv_info_image (image)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci;
|
|
|
|
DROP TABLE IF EXISTS upcoming_releases;
|
|
CREATE TABLE upcoming_releases (
|
|
id INT(10) NOT NULL AUTO_INCREMENT,
|
|
source VARCHAR(20) NOT NULL,
|
|
typeid INT(10) NOT NULL,
|
|
info TEXT NULL,
|
|
updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX ix_upcoming_source (source, typeid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS users_releases;
|
|
CREATE TABLE users_releases (
|
|
id INT(16) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_users_ur FOREIGN KEY (users_id)
|
|
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
UNIQUE INDEX ix_usercart_userrelease (users_id, releases_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS user_downloads;
|
|
CREATE TABLE user_downloads (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
hosthash VARCHAR(50) NOT NULL DEFAULT '',
|
|
timestamp DATETIME NOT NULL,
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_users_ud FOREIGN KEY (users_id)
|
|
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
KEY userid (users_id),
|
|
KEY timestamp (timestamp)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS user_excluded_categories;
|
|
CREATE TABLE user_excluded_categories (
|
|
id INT(16) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
categories_id INT NOT NULL,
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_users_uec FOREIGN KEY (users_id)
|
|
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
UNIQUE INDEX ix_userexcat_usercat (users_id, categories_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS role_excluded_categories;
|
|
CREATE TABLE role_excluded_categories
|
|
(
|
|
id INT(16) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
user_roles_id INT(11) NOT NULL,
|
|
categories_id INT(11),
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX ix_roleexcat_rolecat (user_roles_id, categories_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS user_movies;
|
|
CREATE TABLE user_movies (
|
|
id INT(16) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
imdbid MEDIUMINT(7) UNSIGNED ZEROFILL NULL,
|
|
categories VARCHAR(64) NULL DEFAULT NULL COMMENT 'List of categories for user movies',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_users_um FOREIGN KEY (users_id)
|
|
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
INDEX ix_usermovies_userid (users_id, imdbid)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS user_requests;
|
|
CREATE TABLE user_requests (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
hosthash VARCHAR(50) NOT NULL DEFAULT '',
|
|
request VARCHAR(255) NOT NULL,
|
|
timestamp DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_users_urq FOREIGN KEY (users_id)
|
|
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
KEY userid (users_id),
|
|
KEY timestamp (timestamp)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS user_series;
|
|
CREATE TABLE user_series (
|
|
id INT(16) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
users_id INT(16) UNSIGNED NOT NULL,
|
|
videos_id INT(16) NOT NULL COMMENT 'FK to videos.id',
|
|
categories VARCHAR(64) NULL DEFAULT NULL COMMENT 'List of categories for user tv shows',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_users_us FOREIGN KEY (users_id)
|
|
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
INDEX ix_userseries_videos_id (users_id, videos_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DROP TABLE IF EXISTS video_data;
|
|
CREATE TABLE video_data (
|
|
releases_id INT(11) UNSIGNED NOT NULL COMMENT 'FK to releases.id',
|
|
containerformat VARCHAR(50) DEFAULT NULL,
|
|
overallbitrate VARCHAR(20) DEFAULT NULL,
|
|
videoduration VARCHAR(20) DEFAULT NULL,
|
|
videoformat VARCHAR(50) DEFAULT NULL,
|
|
videocodec VARCHAR(50) DEFAULT NULL,
|
|
videowidth INT(10) DEFAULT NULL,
|
|
videoheight INT(10) DEFAULT NULL,
|
|
videoaspect VARCHAR(10) DEFAULT NULL,
|
|
videoframerate FLOAT(7, 4) DEFAULT NULL,
|
|
videolibrary VARCHAR(50) DEFAULT NULL,
|
|
PRIMARY KEY (releases_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC;
|
|
|
|
|
|
DROP TABLE IF EXISTS videos;
|
|
CREATE TABLE videos (
|
|
id MEDIUMINT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Show ID to be used in other tables as reference ',
|
|
type TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0 = TV, 1 = Film, 2 = Anime',
|
|
title VARCHAR(180) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Name of the video.',
|
|
countries_id CHAR(2) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Two character country code (FK to countries table).',
|
|
started DATETIME NOT NULL COMMENT 'Date (UTC) of production''s first airing.',
|
|
anidb MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'ID number for anidb site',
|
|
imdb MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'ID number for IMDB site (without the ''tt'' prefix).',
|
|
tmdb MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'ID number for TMDB site.',
|
|
trakt MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'ID number for TraktTV site.',
|
|
tvdb MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'ID number for TVDB site',
|
|
tvmaze MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'ID number for TVMaze site.',
|
|
tvrage MEDIUMINT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'ID number for TVRage site.',
|
|
source TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Which site did we use for info?',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY ix_videos_title (title, type, started, countries_id),
|
|
KEY ix_videos_imdb (imdb),
|
|
KEY ix_videos_tmdb (tmdb),
|
|
KEY ix_videos_trakt (trakt),
|
|
KEY ix_videos_tvdb (tvdb),
|
|
KEY ix_videos_tvmaze (tvmaze),
|
|
KEY ix_videos_tvrage (tvrage),
|
|
KEY ix_videos_type_source (type, source)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
AUTO_INCREMENT = 10000000;
|
|
|
|
DROP TABLE IF EXISTS videos_aliases;
|
|
CREATE TABLE videos_aliases (
|
|
videos_id MEDIUMINT(11) UNSIGNED NOT NULL COMMENT 'FK to videos.id of the parent title.',
|
|
title VARCHAR(180) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'AKA of the video.',
|
|
PRIMARY KEY (videos_id, title)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
AUTO_INCREMENT = 10000000;
|
|
|
|
DROP TABLE IF EXISTS xxxinfo;
|
|
CREATE TABLE xxxinfo (
|
|
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
title VARCHAR(1024) NOT NULL,
|
|
tagline VARCHAR(1024) NOT NULL,
|
|
plot BLOB NULL DEFAULT NULL,
|
|
genre VARCHAR(255) NOT NULL,
|
|
director VARCHAR(255) DEFAULT NULL,
|
|
actors VARCHAR(2500) NOT NULL,
|
|
extras TEXT DEFAULT NULL,
|
|
productinfo TEXT DEFAULT NULL,
|
|
trailers TEXT DEFAULT NULL,
|
|
directurl VARCHAR(2000) NOT NULL,
|
|
classused VARCHAR(20) NOT NULL DEFAULT '',
|
|
cover TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
backdrop TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE INDEX ix_xxxinfo_title (title)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = COMPRESSED
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS multigroup_binaries;
|
|
CREATE TABLE multigroup_binaries (
|
|
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
name VARCHAR(1000) NOT NULL DEFAULT '',
|
|
collections_id INT(11) UNSIGNED NOT NULL DEFAULT 0,
|
|
filenumber INT UNSIGNED NOT NULL DEFAULT '0',
|
|
totalparts INT(11) UNSIGNED NOT NULL DEFAULT 0,
|
|
currentparts INT UNSIGNED NOT NULL DEFAULT 0,
|
|
binaryhash BINARY(16) NOT NULL DEFAULT '0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
|
|
partcheck TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
|
|
partsize BIGINT UNSIGNED NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT FK_MGR_Collections FOREIGN KEY (collections_id)
|
|
REFERENCES multigroup_collections(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
UNIQUE INDEX ix_binaries_binaryhash (binaryhash),
|
|
INDEX ix_binaries_partcheck (partcheck),
|
|
INDEX ix_binaries_collection (collections_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS multigroup_parts;
|
|
CREATE TABLE multigroup_parts (
|
|
binaries_id BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
|
|
messageid VARCHAR(255) CHARACTER SET latin1 NOT NULL DEFAULT '',
|
|
number BIGINT UNSIGNED NOT NULL DEFAULT '0',
|
|
partnumber MEDIUMINT UNSIGNED NOT NULL DEFAULT '0',
|
|
size MEDIUMINT UNSIGNED NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (binaries_id,number),
|
|
CONSTRAINT FK_MGR_binaries FOREIGN KEY (binaries_id)
|
|
REFERENCES multigroup_binaries(id) ON DELETE CASCADE ON UPDATE CASCADE
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
DROP TABLE IF EXISTS multigroup_missed_parts;
|
|
CREATE TABLE multigroup_missed_parts (
|
|
id INT(16) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
numberid BIGINT UNSIGNED NOT NULL,
|
|
groups_id INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'FK to groups.id',
|
|
attempts TINYINT(1) NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (id),
|
|
INDEX ix_missed_parts_attempts (attempts),
|
|
INDEX ix_missed_parts_groupid_attempts (groups_id, attempts),
|
|
INDEX ix_missed_parts_numberid_groupsid_attempts (numberid, groups_id, attempts),
|
|
UNIQUE INDEX ix_missed_parts_numberid_groupsid (numberid, groups_id)
|
|
)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARSET = utf8
|
|
COLLATE = utf8_unicode_ci
|
|
ROW_FORMAT = DYNAMIC
|
|
AUTO_INCREMENT = 1;
|
|
|
|
|
|
DELIMITER $$
|
|
CREATE TRIGGER check_insert BEFORE INSERT ON releases FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.searchname REGEXP '[a-fA-F0-9]{32}' OR NEW.name REGEXP '[a-fA-F0-9]{32}'
|
|
THEN SET NEW.ishashed = 1;
|
|
END IF;
|
|
END; $$
|
|
|
|
CREATE TRIGGER check_update BEFORE UPDATE ON releases FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.searchname REGEXP '[a-fA-F0-9]{32}' OR NEW.name REGEXP '[a-fA-F0-9]{32}'
|
|
THEN SET NEW.ishashed = 1;
|
|
END IF;
|
|
END; $$
|
|
|
|
CREATE TRIGGER check_rfinsert BEFORE INSERT ON release_files FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.name REGEXP '[a-fA-F0-9]{32}'
|
|
THEN SET NEW.ishashed = 1;
|
|
END IF;
|
|
END; $$
|
|
|
|
CREATE TRIGGER check_rfupdate BEFORE UPDATE ON release_files FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.name REGEXP '[a-fA-F0-9]{32}'
|
|
THEN SET NEW.ishashed = 1;
|
|
END IF;
|
|
END; $$
|
|
|
|
CREATE TRIGGER insert_search AFTER INSERT ON releases FOR EACH ROW
|
|
BEGIN
|
|
INSERT INTO release_search_data (releases_id, guid, name, searchname, fromname) VALUES (NEW.id, NEW.guid, NEW.name, NEW.searchname, NEW.fromname);
|
|
END; $$
|
|
|
|
CREATE TRIGGER update_search AFTER UPDATE ON releases FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.guid != OLD.guid
|
|
THEN UPDATE release_search_data SET guid = NEW.guid WHERE releases_id = OLD.id;
|
|
END IF;
|
|
IF NEW.name != OLD.name
|
|
THEN UPDATE release_search_data SET name = NEW.name WHERE releases_id = OLD.id;
|
|
END IF;
|
|
IF NEW.searchname != OLD.searchname
|
|
THEN UPDATE release_search_data SET searchname = NEW.searchname WHERE releases_id = OLD.id;
|
|
END IF;
|
|
IF NEW.fromname != OLD.fromname
|
|
THEN UPDATE release_search_data SET fromname = NEW.fromname WHERE releases_id = OLD.id;
|
|
END IF;
|
|
END; $$
|
|
|
|
CREATE TRIGGER delete_search AFTER DELETE ON releases FOR EACH ROW
|
|
BEGIN
|
|
DELETE FROM release_search_data WHERE releases_id = OLD.id;
|
|
END; $$
|
|
|
|
CREATE TRIGGER insert_hashes AFTER INSERT ON predb FOR EACH ROW BEGIN INSERT INTO predb_hashes (hash, predb_id) VALUES (UNHEX(MD5(NEW.title)), NEW.id), (UNHEX(MD5(MD5(NEW.title))), NEW.id), (UNHEX(SHA1(NEW.title)), NEW.id), (UNHEX(SHA2(NEW.title, 256)), NEW.id), (UNHEX(MD5(CONCAT(NEW.title, NEW.requestid))), NEW.id), (UNHEX(MD5(CONCAT(NEW.title, NEW.requestid, NEW.requestid))), NEW.id);END; $$
|
|
|
|
CREATE TRIGGER update_hashes AFTER UPDATE ON predb FOR EACH ROW BEGIN IF NEW.title != OLD.title THEN DELETE FROM predb_hashes WHERE hash IN ( UNHEX(md5(OLD.title)), UNHEX(md5(md5(OLD.title))), UNHEX(sha1(OLD.title)), UNHEX(sha2(OLD.title, 256)), UNHEX(MD5(CONCAT(OLD.title, OLD.requestid)))) AND predb_id = OLD.id; INSERT INTO predb_hashes (hash, predb_id) VALUES (UNHEX(MD5(NEW.title)), NEW.id), (UNHEX(MD5(MD5(NEW.title))), NEW.id), (UNHEX(SHA1(NEW.title)), NEW.id), (UNHEX(SHA2(NEW.title, 256)), NEW.id), (UNHEX(MD5(CONCAT((NEW.title, NEW.requestid)))), NEW.id), (UNHEX(MD5(CONCAT(NEW.title, NEW.requestid, NEW.requestid))), NEW.id);END IF;END; $$
|
|
|
|
CREATE TRIGGER delete_hashes AFTER DELETE ON predb FOR EACH ROW BEGIN DELETE FROM predb_hashes WHERE hash IN ( UNHEX(md5(OLD.title)), UNHEX(md5(md5(OLD.title))), UNHEX(sha1(OLD.title)), UNHEX(sha2(OLD.title, 256)), UNHEX(MD5(CONCAT(OLD.title, OLD.requestid))), UNHEX(MD5(CONCAT(OLD.title, OLD.requestid, OLD.requestid)))) AND predb_id = OLD.id;END; $$
|
|
|
|
CREATE TRIGGER insert_MD5 BEFORE INSERT ON release_comments FOR EACH ROW
|
|
SET
|
|
NEW.text_hash = MD5(NEW.text);$$
|
|
|
|
#
|
|
# Stored Procedures
|
|
#
|
|
CREATE PROCEDURE loop_cbpm(IN method CHAR(10))
|
|
COMMENT 'Performs tasks on All CBPM tables one by one -- REPAIR/ANALYZE/OPTIMIZE or DROP/TRUNCATE'
|
|
|
|
main: BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE tname VARCHAR(255) DEFAULT '';
|
|
DECLARE regstr VARCHAR(255) CHARSET utf8 COLLATE utf8_general_ci DEFAULT '';
|
|
|
|
DECLARE cur1 CURSOR FOR
|
|
SELECT TABLE_NAME
|
|
FROM information_schema.TABLES
|
|
WHERE
|
|
TABLE_SCHEMA = (SELECT DATABASE())
|
|
AND TABLE_NAME REGEXP regstr
|
|
ORDER BY TABLE_NAME ASC;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
|
|
|
IF method NOT IN ('repair', 'analyze', 'optimize', 'drop', 'truncate')
|
|
THEN LEAVE main; END IF;
|
|
|
|
IF method = 'drop' THEN SET regstr = '^(collections|binaries|parts|missed_parts)_[0-9]+$';
|
|
ELSE SET regstr = '^(multigroup_)?(collections|binaries|parts|missed_parts)(_[0-9]+)?$';
|
|
END IF;
|
|
|
|
OPEN cur1;
|
|
cbpm_loop: LOOP FETCH cur1
|
|
INTO tname;
|
|
IF done
|
|
THEN LEAVE cbpm_loop; END IF;
|
|
SET @SQL := CONCAT(method, ' TABLE ', tname);
|
|
PREPARE _stmt FROM @SQL;
|
|
EXECUTE _stmt;
|
|
DEALLOCATE PREPARE _stmt;
|
|
END LOOP;
|
|
CLOSE cur1;
|
|
END;
|
|
$$
|
|
|
|
|
|
CREATE PROCEDURE delete_release(IN is_numeric BOOLEAN, IN identifier VARCHAR(40))
|
|
COMMENT 'Cascade deletes release from child tables when parent row is deleted'
|
|
COMMENT 'If is_numeric is true, identifier should be the releases_id, if false the guid'
|
|
|
|
main: BEGIN
|
|
|
|
DECLARE where_constr VARCHAR(255) DEFAULT '';
|
|
|
|
IF is_numeric IS TRUE
|
|
THEN
|
|
DELETE r
|
|
FROM releases r
|
|
WHERE r.id = identifier;
|
|
|
|
ELSEIF is_numeric IS FALSE
|
|
THEN
|
|
DELETE r
|
|
FROM releases r
|
|
WHERE r.guid = identifier;
|
|
|
|
ELSE LEAVE main;
|
|
END IF;
|
|
|
|
END;
|
|
$$
|
|
|
|
DELIMITER ;
|