forked from DebaucheryLibrarian/traxxx
Storing actor avatars. Using 1 second interval queue for location resolve as per OSM code of conduct.
This commit is contained in:
@@ -59,13 +59,16 @@ exports.up = knex => Promise.resolve()
|
||||
.inTable('media')
|
||||
.unique();
|
||||
}))
|
||||
.then(() => knex.raw(`
|
||||
CREATE FUNCTION get_random_sfw_media_id() RETURNS varchar AS $$
|
||||
SELECT media_id FROM media_sfw
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
$$ LANGUAGE sql STABLE;
|
||||
`))
|
||||
.then(() => { // eslint-disable-line arrow-body-style
|
||||
// allow vim fold
|
||||
return knex.raw(`
|
||||
CREATE FUNCTION get_random_sfw_media_id() RETURNS varchar AS $$
|
||||
SELECT media_id FROM media_sfw
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
$$ LANGUAGE sql STABLE;
|
||||
`);
|
||||
})
|
||||
.then(() => knex.schema.alterTable('media', (table) => {
|
||||
table.string('sfw_media_id', 21)
|
||||
.references('id')
|
||||
@@ -140,6 +143,7 @@ exports.up = knex => Promise.resolve()
|
||||
table.increments('id', 12);
|
||||
|
||||
table.string('name');
|
||||
table.string('alias');
|
||||
table.string('url');
|
||||
table.text('description');
|
||||
table.json('parameters');
|
||||
@@ -322,6 +326,7 @@ exports.up = knex => Promise.resolve()
|
||||
table.increments('id', 12);
|
||||
|
||||
table.integer('actor_id', 12)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('actors');
|
||||
|
||||
@@ -371,6 +376,10 @@ exports.up = knex => Promise.resolve()
|
||||
table.string('piercings');
|
||||
table.string('tattoos');
|
||||
|
||||
table.string('avatar_media_id', 21)
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
|
||||
table.datetime('scraped_at');
|
||||
table.boolean('scrape_success');
|
||||
|
||||
@@ -386,122 +395,125 @@ exports.up = knex => Promise.resolve()
|
||||
|
||||
table.string('name');
|
||||
}))
|
||||
.then(() => knex('body').insert([
|
||||
// head
|
||||
{ slug: 'head', name: 'head' },
|
||||
{ slug: 'face', name: 'face' },
|
||||
{ slug: 'scalp', name: 'scalp' },
|
||||
{ slug: 'forehead', name: 'forehead' },
|
||||
{ slug: 'temple', name: 'temple' },
|
||||
{ slug: 'cheek', name: 'cheek' },
|
||||
{ slug: 'jaw', name: 'jaw' },
|
||||
{ slug: 'chin', name: 'chin' },
|
||||
{ slug: 'neck', name: 'neck' },
|
||||
{ slug: 'throat', name: 'throat' },
|
||||
// eyes
|
||||
{ slug: 'eyelid', name: 'eyelid' },
|
||||
{ slug: 'eyeball', name: 'eyeball' },
|
||||
{ slug: 'eyebrow', name: 'eyebrow' },
|
||||
// mouth
|
||||
{ slug: 'tongue', name: 'tongue' },
|
||||
{ slug: 'lip', name: 'lip' },
|
||||
{ slug: 'upper-lip', name: 'upper lip' },
|
||||
{ slug: 'lower-lip', name: 'lower lip' },
|
||||
{ slug: 'inner-lip', name: 'inner lip' },
|
||||
{ slug: 'inner-lower-lip', name: 'inner lower lip' },
|
||||
{ slug: 'inner-upper-lip', name: 'inner upper lip' },
|
||||
{ slug: 'philtrum', name: 'philtrum' },
|
||||
{ slug: 'above-lip', name: 'above lip' },
|
||||
{ slug: 'below-lip', name: 'below lip' },
|
||||
// nose
|
||||
{ slug: 'nose', name: 'nose' },
|
||||
{ slug: 'third-eye', name: 'third eye' },
|
||||
{ slug: 'bridge', name: 'bridge' },
|
||||
{ slug: 'nostril', name: 'nostril' },
|
||||
{ slug: 'septum', name: 'septum' },
|
||||
{ slug: 'septril', name: 'septril' },
|
||||
// ear
|
||||
{ slug: 'ear', name: 'ear' },
|
||||
{ slug: 'earlobe', name: 'earlobe' },
|
||||
{ slug: 'helix', name: 'helix' },
|
||||
{ slug: 'tragus', name: 'tragus' },
|
||||
{ slug: 'conch', name: 'conch' },
|
||||
{ slug: 'rook', name: 'rook' },
|
||||
{ slug: 'behind-ear', name: 'behind ear' },
|
||||
// arms
|
||||
{ slug: 'arm', name: 'arm' },
|
||||
{ slug: 'upper-arm', name: 'upper arm' },
|
||||
{ slug: 'forearm', name: 'forearm' },
|
||||
{ slug: 'elbow', name: 'elbow' },
|
||||
{ slug: 'inner-elbow', name: 'inner elbow' },
|
||||
{ slug: 'outer-elbow', name: 'outer elbow' },
|
||||
// hands
|
||||
{ slug: 'hand', name: 'hand' },
|
||||
{ slug: 'fingers', name: 'fingers' },
|
||||
{ slug: 'knuckles', name: 'knuckles' },
|
||||
{ slug: 'thumb', name: 'thumb' },
|
||||
{ slug: 'index-finger', name: 'index finger' },
|
||||
{ slug: 'middle-finger', name: 'middle finger' },
|
||||
{ slug: 'ring-finger', name: 'ring finger' },
|
||||
{ slug: 'pinky', name: 'pinky' },
|
||||
{ slug: 'back-of-hand', name: 'back of hand' },
|
||||
{ slug: 'inner-wrist', name: 'inner wrist' },
|
||||
{ slug: 'outer-wrist', name: 'outer wrist' },
|
||||
// torso
|
||||
{ slug: 'shoulder', name: 'shoulder' },
|
||||
{ slug: 'collarbone', name: 'collarbone' },
|
||||
{ slug: 'chest', name: 'chest' },
|
||||
{ slug: 'rib-cage', name: 'rib cage' },
|
||||
{ slug: 'breastbone', name: 'breastbone' },
|
||||
{ slug: 'underboob', name: 'underboob' },
|
||||
{ slug: 'sideboob', name: 'sideboob' },
|
||||
{ slug: 'boob', name: 'boob' },
|
||||
{ slug: 'nipple', name: 'nipple' },
|
||||
{ slug: 'abdomen', name: 'abdomen' },
|
||||
{ slug: 'navel', name: 'navel' },
|
||||
{ slug: 'pelvis', name: 'pelvis' },
|
||||
// back
|
||||
{ slug: 'back', name: 'back' },
|
||||
{ slug: 'upper-back', name: 'upper back' },
|
||||
{ slug: 'middle-back', name: 'lower back' },
|
||||
{ slug: 'lower-back', name: 'lower back' },
|
||||
{ slug: 'spine', name: 'spine' },
|
||||
// bottom
|
||||
{ slug: 'butt', name: 'butt' },
|
||||
{ slug: 'hip', name: 'hip' },
|
||||
{ slug: 'anus', name: 'anus' },
|
||||
// genitals
|
||||
{ slug: 'pubic-mound', name: 'pubic mound' },
|
||||
{ slug: 'vagina', name: 'vagina' },
|
||||
{ slug: 'outer-labia', name: 'outer labia' },
|
||||
{ slug: 'inner-labia', name: 'inner labia' },
|
||||
{ slug: 'clitoris', name: 'clitoris' },
|
||||
{ slug: 'penis', name: 'penis' },
|
||||
{ slug: 'glans', name: 'glans' },
|
||||
{ slug: 'foreskin', name: 'foreskin' },
|
||||
{ slug: 'shaft', name: 'shaft' },
|
||||
{ slug: 'scrotum', name: 'scrotum' },
|
||||
// legs
|
||||
{ slug: 'leg', name: 'leg' },
|
||||
{ slug: 'groin', name: 'groin' },
|
||||
{ slug: 'upper-leg', name: 'upper leg' },
|
||||
{ slug: 'thigh', name: 'thigh' },
|
||||
{ slug: 'lower-leg', name: 'lower leg' },
|
||||
{ slug: 'shin', name: 'shin' },
|
||||
{ slug: 'calf', name: 'calf' },
|
||||
{ slug: 'knee', name: 'knee' },
|
||||
{ slug: 'inner-knee', name: 'inner knee' },
|
||||
// feet
|
||||
{ slug: 'inner-ankle', name: 'inner ankle' },
|
||||
{ slug: 'outer-ankle', name: 'outer ankle' },
|
||||
{ slug: 'foot', name: 'foot' },
|
||||
{ slug: 'toes', name: 'toes' },
|
||||
{ slug: 'big-toe', name: 'big toe' },
|
||||
{ slug: 'index-toe', name: 'index toe' },
|
||||
{ slug: 'middle-toe', name: 'middle toe' },
|
||||
{ slug: 'fourth-toe', name: 'fourth toe' },
|
||||
{ slug: 'little-toe', name: 'little toe' },
|
||||
]))
|
||||
.then(() => { // eslint-disable-line arrow-body-style
|
||||
// allow vim fold
|
||||
return knex('body').insert([
|
||||
// head
|
||||
{ slug: 'head', name: 'head' },
|
||||
{ slug: 'face', name: 'face' },
|
||||
{ slug: 'scalp', name: 'scalp' },
|
||||
{ slug: 'forehead', name: 'forehead' },
|
||||
{ slug: 'temple', name: 'temple' },
|
||||
{ slug: 'cheek', name: 'cheek' },
|
||||
{ slug: 'jaw', name: 'jaw' },
|
||||
{ slug: 'chin', name: 'chin' },
|
||||
{ slug: 'neck', name: 'neck' },
|
||||
{ slug: 'throat', name: 'throat' },
|
||||
// eyes
|
||||
{ slug: 'eyelid', name: 'eyelid' },
|
||||
{ slug: 'eyeball', name: 'eyeball' },
|
||||
{ slug: 'eyebrow', name: 'eyebrow' },
|
||||
// mouth
|
||||
{ slug: 'tongue', name: 'tongue' },
|
||||
{ slug: 'lip', name: 'lip' },
|
||||
{ slug: 'upper-lip', name: 'upper lip' },
|
||||
{ slug: 'lower-lip', name: 'lower lip' },
|
||||
{ slug: 'inner-lip', name: 'inner lip' },
|
||||
{ slug: 'inner-lower-lip', name: 'inner lower lip' },
|
||||
{ slug: 'inner-upper-lip', name: 'inner upper lip' },
|
||||
{ slug: 'philtrum', name: 'philtrum' },
|
||||
{ slug: 'above-lip', name: 'above lip' },
|
||||
{ slug: 'below-lip', name: 'below lip' },
|
||||
// nose
|
||||
{ slug: 'nose', name: 'nose' },
|
||||
{ slug: 'third-eye', name: 'third eye' },
|
||||
{ slug: 'bridge', name: 'bridge' },
|
||||
{ slug: 'nostril', name: 'nostril' },
|
||||
{ slug: 'septum', name: 'septum' },
|
||||
{ slug: 'septril', name: 'septril' },
|
||||
// ear
|
||||
{ slug: 'ear', name: 'ear' },
|
||||
{ slug: 'earlobe', name: 'earlobe' },
|
||||
{ slug: 'helix', name: 'helix' },
|
||||
{ slug: 'tragus', name: 'tragus' },
|
||||
{ slug: 'conch', name: 'conch' },
|
||||
{ slug: 'rook', name: 'rook' },
|
||||
{ slug: 'behind-ear', name: 'behind ear' },
|
||||
// arms
|
||||
{ slug: 'arm', name: 'arm' },
|
||||
{ slug: 'upper-arm', name: 'upper arm' },
|
||||
{ slug: 'forearm', name: 'forearm' },
|
||||
{ slug: 'elbow', name: 'elbow' },
|
||||
{ slug: 'inner-elbow', name: 'inner elbow' },
|
||||
{ slug: 'outer-elbow', name: 'outer elbow' },
|
||||
// hands
|
||||
{ slug: 'hand', name: 'hand' },
|
||||
{ slug: 'fingers', name: 'fingers' },
|
||||
{ slug: 'knuckles', name: 'knuckles' },
|
||||
{ slug: 'thumb', name: 'thumb' },
|
||||
{ slug: 'index-finger', name: 'index finger' },
|
||||
{ slug: 'middle-finger', name: 'middle finger' },
|
||||
{ slug: 'ring-finger', name: 'ring finger' },
|
||||
{ slug: 'pinky', name: 'pinky' },
|
||||
{ slug: 'back-of-hand', name: 'back of hand' },
|
||||
{ slug: 'inner-wrist', name: 'inner wrist' },
|
||||
{ slug: 'outer-wrist', name: 'outer wrist' },
|
||||
// torso
|
||||
{ slug: 'shoulder', name: 'shoulder' },
|
||||
{ slug: 'collarbone', name: 'collarbone' },
|
||||
{ slug: 'chest', name: 'chest' },
|
||||
{ slug: 'rib-cage', name: 'rib cage' },
|
||||
{ slug: 'breastbone', name: 'breastbone' },
|
||||
{ slug: 'underboob', name: 'underboob' },
|
||||
{ slug: 'sideboob', name: 'sideboob' },
|
||||
{ slug: 'boob', name: 'boob' },
|
||||
{ slug: 'nipple', name: 'nipple' },
|
||||
{ slug: 'abdomen', name: 'abdomen' },
|
||||
{ slug: 'navel', name: 'navel' },
|
||||
{ slug: 'pelvis', name: 'pelvis' },
|
||||
// back
|
||||
{ slug: 'back', name: 'back' },
|
||||
{ slug: 'upper-back', name: 'upper back' },
|
||||
{ slug: 'middle-back', name: 'lower back' },
|
||||
{ slug: 'lower-back', name: 'lower back' },
|
||||
{ slug: 'spine', name: 'spine' },
|
||||
// bottom
|
||||
{ slug: 'butt', name: 'butt' },
|
||||
{ slug: 'hip', name: 'hip' },
|
||||
{ slug: 'anus', name: 'anus' },
|
||||
// genitals
|
||||
{ slug: 'pubic-mound', name: 'pubic mound' },
|
||||
{ slug: 'vagina', name: 'vagina' },
|
||||
{ slug: 'outer-labia', name: 'outer labia' },
|
||||
{ slug: 'inner-labia', name: 'inner labia' },
|
||||
{ slug: 'clitoris', name: 'clitoris' },
|
||||
{ slug: 'penis', name: 'penis' },
|
||||
{ slug: 'glans', name: 'glans' },
|
||||
{ slug: 'foreskin', name: 'foreskin' },
|
||||
{ slug: 'shaft', name: 'shaft' },
|
||||
{ slug: 'scrotum', name: 'scrotum' },
|
||||
// legs
|
||||
{ slug: 'leg', name: 'leg' },
|
||||
{ slug: 'groin', name: 'groin' },
|
||||
{ slug: 'upper-leg', name: 'upper leg' },
|
||||
{ slug: 'thigh', name: 'thigh' },
|
||||
{ slug: 'lower-leg', name: 'lower leg' },
|
||||
{ slug: 'shin', name: 'shin' },
|
||||
{ slug: 'calf', name: 'calf' },
|
||||
{ slug: 'knee', name: 'knee' },
|
||||
{ slug: 'inner-knee', name: 'inner knee' },
|
||||
// feet
|
||||
{ slug: 'inner-ankle', name: 'inner ankle' },
|
||||
{ slug: 'outer-ankle', name: 'outer ankle' },
|
||||
{ slug: 'foot', name: 'foot' },
|
||||
{ slug: 'toes', name: 'toes' },
|
||||
{ slug: 'big-toe', name: 'big toe' },
|
||||
{ slug: 'index-toe', name: 'index toe' },
|
||||
{ slug: 'middle-toe', name: 'middle toe' },
|
||||
{ slug: 'fourth-toe', name: 'fourth toe' },
|
||||
{ slug: 'little-toe', name: 'little toe' },
|
||||
]);
|
||||
})
|
||||
.then(() => knex.schema.createTable('actors_tattoos', (table) => {
|
||||
table.increments('id');
|
||||
|
||||
@@ -769,114 +781,120 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('releases');
|
||||
}))
|
||||
.then(() => knex.raw(`
|
||||
ALTER TABLE releases
|
||||
ADD CONSTRAINT ensure_site_or_network CHECK (site_id IS NOT NULL OR network_id IS NOT NULL);
|
||||
.then(() => { // eslint-disable-line arrow-body-style
|
||||
// allow vim fold
|
||||
return knex.raw(`
|
||||
ALTER TABLE releases
|
||||
ADD CONSTRAINT ensure_site_or_network CHECK (site_id IS NOT NULL OR network_id IS NOT NULL);
|
||||
|
||||
ALTER TABLE releases_search
|
||||
ADD COLUMN document tsvector;
|
||||
ALTER TABLE releases_search
|
||||
ADD COLUMN document tsvector;
|
||||
|
||||
CREATE TEXT SEARCH DICTIONARY traxxx_dict (
|
||||
TEMPLATE = pg_catalog.simple,
|
||||
stopwords = traxxx
|
||||
);
|
||||
CREATE TEXT SEARCH DICTIONARY traxxx_dict (
|
||||
TEMPLATE = pg_catalog.simple,
|
||||
stopwords = traxxx
|
||||
);
|
||||
|
||||
CREATE TEXT SEARCH CONFIGURATION traxxx (
|
||||
COPY = english
|
||||
);
|
||||
CREATE TEXT SEARCH CONFIGURATION traxxx (
|
||||
COPY = english
|
||||
);
|
||||
|
||||
ALTER TEXT SEARCH CONFIGURATION traxxx
|
||||
ALTER MAPPING FOR word, numword, hword, numhword, hword_part, hword_numpart, asciiword, asciihword, hword_asciipart WITH traxxx_dict, simple, english_stem;
|
||||
ALTER TEXT SEARCH CONFIGURATION traxxx
|
||||
ALTER MAPPING FOR word, numword, hword, numhword, hword_part, hword_numpart, asciiword, asciihword, hword_asciipart WITH traxxx_dict, simple, english_stem;
|
||||
|
||||
CREATE UNIQUE INDEX releases_search_unique ON releases_search (release_id);
|
||||
CREATE INDEX releases_search_index ON releases_search USING GIN (document);
|
||||
CREATE UNIQUE INDEX releases_search_unique ON releases_search (release_id);
|
||||
CREATE INDEX releases_search_index ON releases_search USING GIN (document);
|
||||
|
||||
CREATE FUNCTION search_releases(query text) RETURNS SETOF releases AS $$
|
||||
SELECT * FROM releases WHERE releases.id IN (
|
||||
SELECT release_id FROM releases_search AS search
|
||||
WHERE search.document @@ plainto_tsquery('traxxx', regexp_replace(query, '\\.|-|(XXX\\.[\\d+|hd|sd].*$)', ' ', 'ig'))
|
||||
ORDER BY ts_rank(search.document, plainto_tsquery('traxxx', regexp_replace(query, '\\.|-|(XXX\\.[\\d+|hd|sd].*$)', ' ', 'ig'))) DESC
|
||||
);
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
CREATE FUNCTION search_releases(query text) RETURNS SETOF releases AS $$
|
||||
SELECT * FROM releases WHERE releases.id IN (
|
||||
SELECT release_id FROM releases_search AS search
|
||||
WHERE search.document @@ plainto_tsquery('traxxx', regexp_replace(query, '\\.|-|(XXX\\.[\\d+|hd|sd].*$)', ' ', 'ig'))
|
||||
ORDER BY ts_rank(search.document, plainto_tsquery('traxxx', regexp_replace(query, '\\.|-|(XXX\\.[\\d+|hd|sd].*$)', ' ', 'ig'))) DESC
|
||||
);
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
|
||||
CREATE FUNCTION search_sites(search text) RETURNS SETOF sites AS $$
|
||||
SELECT * FROM sites
|
||||
WHERE
|
||||
name ILIKE ('%' || search || '%') OR
|
||||
slug ILIKE ('%' || search || '%') OR
|
||||
url ILIKE ('%' || search || '%')
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
CREATE FUNCTION search_sites(search text) RETURNS SETOF sites AS $$
|
||||
SELECT * FROM sites
|
||||
WHERE
|
||||
name ILIKE ('%' || search || '%') OR
|
||||
slug ILIKE ('%' || search || '%') OR
|
||||
url ILIKE ('%' || search || '%')
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
|
||||
CREATE FUNCTION releases_is_new(release releases) RETURNS boolean AS $$
|
||||
SELECT NOT EXISTS(SELECT true FROM batches WHERE batches.id = release.created_batch_id + 1 LIMIT 1);
|
||||
$$ LANGUAGE sql STABLE;
|
||||
CREATE FUNCTION releases_is_new(release releases) RETURNS boolean AS $$
|
||||
SELECT NOT EXISTS(SELECT true FROM batches WHERE batches.id = release.created_batch_id + 1 LIMIT 1);
|
||||
$$ LANGUAGE sql STABLE;
|
||||
|
||||
CREATE VIEW movie_actors AS
|
||||
SELECT releases_movies.movie_id, releases_actors.actor_id FROM releases_movies
|
||||
LEFT JOIN releases ON releases.id = releases_movies.scene_id
|
||||
LEFT JOIN releases_actors ON releases_actors.release_id = releases.id
|
||||
GROUP BY movie_id, actor_id;
|
||||
CREATE VIEW movie_actors AS
|
||||
SELECT releases_movies.movie_id, releases_actors.actor_id FROM releases_movies
|
||||
LEFT JOIN releases ON releases.id = releases_movies.scene_id
|
||||
LEFT JOIN releases_actors ON releases_actors.release_id = releases.id
|
||||
GROUP BY movie_id, actor_id;
|
||||
|
||||
CREATE VIEW movie_tags AS
|
||||
SELECT releases_movies.movie_id, releases_tags.tag_id FROM releases_movies
|
||||
LEFT JOIN releases ON releases.id = releases_movies.scene_id
|
||||
LEFT JOIN releases_tags ON releases_tags.release_id = releases.id
|
||||
GROUP BY movie_id, tag_id;
|
||||
CREATE VIEW movie_tags AS
|
||||
SELECT releases_movies.movie_id, releases_tags.tag_id FROM releases_movies
|
||||
LEFT JOIN releases ON releases.id = releases_movies.scene_id
|
||||
LEFT JOIN releases_tags ON releases_tags.release_id = releases.id
|
||||
GROUP BY movie_id, tag_id;
|
||||
|
||||
COMMENT ON VIEW movie_actors IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (actor_id) references actors (id)';
|
||||
COMMENT ON VIEW movie_tags IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (tag_id) references tags (id)';
|
||||
COMMENT ON VIEW movie_actors IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (actor_id) references actors (id)';
|
||||
COMMENT ON VIEW movie_tags IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (tag_id) references tags (id)';
|
||||
|
||||
COMMENT ON COLUMN actors.height IS E'@omit read,update,create,delete,all,many';
|
||||
COMMENT ON COLUMN actors.weight IS E'@omit read,update,create,delete,all,many';
|
||||
`));
|
||||
COMMENT ON COLUMN actors.height IS E'@omit read,update,create,delete,all,many';
|
||||
COMMENT ON COLUMN actors.weight IS E'@omit read,update,create,delete,all,many';
|
||||
`);
|
||||
});
|
||||
|
||||
exports.down = knex => knex.raw(`
|
||||
DROP VIEW IF EXISTS movie_actors;
|
||||
DROP VIEW IF EXISTS movie_tags;
|
||||
exports.down = (knex) => { // eslint-disable-line arrow-body-style
|
||||
// allow vim fold
|
||||
return knex.raw(`
|
||||
DROP VIEW IF EXISTS movie_actors;
|
||||
DROP VIEW IF EXISTS movie_tags;
|
||||
|
||||
DROP TABLE IF EXISTS releases_actors CASCADE;
|
||||
DROP TABLE IF EXISTS releases_movies CASCADE;
|
||||
DROP TABLE IF EXISTS releases_directors CASCADE;
|
||||
DROP TABLE IF EXISTS releases_posters CASCADE;
|
||||
DROP TABLE IF EXISTS releases_photos CASCADE;
|
||||
DROP TABLE IF EXISTS releases_covers CASCADE;
|
||||
DROP TABLE IF EXISTS releases_trailers CASCADE;
|
||||
DROP TABLE IF EXISTS releases_teasers CASCADE;
|
||||
DROP TABLE IF EXISTS releases_tags CASCADE;
|
||||
DROP TABLE IF EXISTS releases_search CASCADE;
|
||||
DROP TABLE IF EXISTS releases_actors CASCADE;
|
||||
DROP TABLE IF EXISTS releases_movies CASCADE;
|
||||
DROP TABLE IF EXISTS releases_directors CASCADE;
|
||||
DROP TABLE IF EXISTS releases_posters CASCADE;
|
||||
DROP TABLE IF EXISTS releases_photos CASCADE;
|
||||
DROP TABLE IF EXISTS releases_covers CASCADE;
|
||||
DROP TABLE IF EXISTS releases_trailers CASCADE;
|
||||
DROP TABLE IF EXISTS releases_teasers CASCADE;
|
||||
DROP TABLE IF EXISTS releases_tags CASCADE;
|
||||
DROP TABLE IF EXISTS releases_search CASCADE;
|
||||
|
||||
DROP TABLE IF EXISTS batches CASCADE;
|
||||
DROP TABLE IF EXISTS batches CASCADE;
|
||||
|
||||
DROP TABLE IF EXISTS actors_avatars CASCADE;
|
||||
DROP TABLE IF EXISTS actors_photos CASCADE;
|
||||
DROP TABLE IF EXISTS actors_social CASCADE;
|
||||
DROP TABLE IF EXISTS actors_profiles CASCADE;
|
||||
DROP TABLE IF EXISTS actors_tattoos CASCADE;
|
||||
DROP TABLE IF EXISTS actors_piercings CASCADE;
|
||||
DROP TABLE IF EXISTS body CASCADE;
|
||||
DROP TABLE IF EXISTS actors_avatars CASCADE;
|
||||
DROP TABLE IF EXISTS actors_photos CASCADE;
|
||||
DROP TABLE IF EXISTS actors_social CASCADE;
|
||||
DROP TABLE IF EXISTS actors_profiles CASCADE;
|
||||
DROP TABLE IF EXISTS actors_tattoos CASCADE;
|
||||
DROP TABLE IF EXISTS actors_piercings CASCADE;
|
||||
DROP TABLE IF EXISTS body CASCADE;
|
||||
|
||||
DROP TABLE IF EXISTS sites_tags CASCADE;
|
||||
DROP TABLE IF EXISTS sites_social CASCADE;
|
||||
DROP TABLE IF EXISTS networks_social CASCADE;
|
||||
DROP TABLE IF EXISTS tags_posters CASCADE;
|
||||
DROP TABLE IF EXISTS tags_photos CASCADE;
|
||||
DROP TABLE IF EXISTS releases CASCADE;
|
||||
DROP TABLE IF EXISTS actors CASCADE;
|
||||
DROP TABLE IF EXISTS directors CASCADE;
|
||||
DROP TABLE IF EXISTS tags CASCADE;
|
||||
DROP TABLE IF EXISTS tags_groups CASCADE;
|
||||
DROP TABLE IF EXISTS social CASCADE;
|
||||
DROP TABLE IF EXISTS sites CASCADE;
|
||||
DROP TABLE IF EXISTS studios CASCADE;
|
||||
DROP TABLE IF EXISTS media_sfw CASCADE;
|
||||
DROP TABLE IF EXISTS media CASCADE;
|
||||
DROP TABLE IF EXISTS countries CASCADE;
|
||||
DROP TABLE IF EXISTS networks CASCADE;
|
||||
DROP TABLE IF EXISTS sites_tags CASCADE;
|
||||
DROP TABLE IF EXISTS sites_social CASCADE;
|
||||
DROP TABLE IF EXISTS networks_social CASCADE;
|
||||
DROP TABLE IF EXISTS tags_posters CASCADE;
|
||||
DROP TABLE IF EXISTS tags_photos CASCADE;
|
||||
DROP TABLE IF EXISTS releases CASCADE;
|
||||
DROP TABLE IF EXISTS actors CASCADE;
|
||||
DROP TABLE IF EXISTS directors CASCADE;
|
||||
DROP TABLE IF EXISTS tags CASCADE;
|
||||
DROP TABLE IF EXISTS tags_groups CASCADE;
|
||||
DROP TABLE IF EXISTS social CASCADE;
|
||||
DROP TABLE IF EXISTS sites CASCADE;
|
||||
DROP TABLE IF EXISTS studios CASCADE;
|
||||
DROP TABLE IF EXISTS media_sfw CASCADE;
|
||||
DROP TABLE IF EXISTS media CASCADE;
|
||||
DROP TABLE IF EXISTS countries CASCADE;
|
||||
DROP TABLE IF EXISTS networks CASCADE;
|
||||
|
||||
DROP FUNCTION IF EXISTS releases_by_tag_slugs;
|
||||
DROP FUNCTION IF EXISTS search_sites;
|
||||
DROP FUNCTION IF EXISTS get_random_sfw_media_id;
|
||||
DROP FUNCTION IF EXISTS releases_by_tag_slugs;
|
||||
DROP FUNCTION IF EXISTS search_sites;
|
||||
DROP FUNCTION IF EXISTS get_random_sfw_media_id;
|
||||
|
||||
DROP TEXT SEARCH CONFIGURATION IF EXISTS traxxx;
|
||||
DROP TEXT SEARCH DICTIONARY IF EXISTS traxxx_dict;
|
||||
`);
|
||||
DROP TEXT SEARCH CONFIGURATION IF EXISTS traxxx;
|
||||
DROP TEXT SEARCH DICTIONARY IF EXISTS traxxx_dict;
|
||||
`);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user