Refactoring to use entities over sites and networks.

This commit is contained in:
2020-06-17 04:07:24 +02:00
parent 1907ce1e54
commit f0a89df6ab
7 changed files with 93 additions and 97 deletions

View File

@@ -326,9 +326,9 @@ exports.up = knex => Promise.resolve()
table.text('real_name');
table.integer('network_id', 12)
table.integer('entity_id', 12)
.references('id')
.inTable('networks');
.inTable('entities');
table.integer('alias_for', 12)
.references('id')
@@ -393,15 +393,11 @@ exports.up = knex => Promise.resolve()
.references('id')
.inTable('actors');
table.integer('network_id', 12)
table.integer('entity_id', 12)
.references('id')
.inTable('networks');
.inTable('entities');
table.integer('site_id', 12)
.references('id')
.inTable('sites');
table.unique(['actor_id', 'network_id', 'site_id']);
table.unique(['actor_id', 'entity_id']);
table.integer('priority', 4)
.defaultTo(1);
@@ -680,13 +676,10 @@ exports.up = knex => Promise.resolve()
.then(() => knex.schema.createTable('releases', (table) => {
table.increments('id', 16);
table.integer('site_id', 12)
table.integer('entity_id', 12)
.references('id')
.inTable('sites');
table.integer('network_id', 12)
.references('id')
.inTable('networks');
.inTable('entities')
.notNullable();
table.integer('studio_id', 12)
.references('id')
@@ -697,7 +690,7 @@ exports.up = knex => Promise.resolve()
table.text('shoot_id');
table.text('entry_id');
table.unique(['site_id', 'network_id', 'entry_id', 'type']);
table.unique(['entity_id', 'entry_id', 'type']);
table.text('url', 1000);
table.text('title');
@@ -856,15 +849,6 @@ exports.up = knex => Promise.resolve()
.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;
CREATE UNIQUE INDEX unique_actor_slugs_network ON actors (slug, network_id);
CREATE UNIQUE INDEX unique_actor_slugs ON actors (slug, (network_id IS NULL));
CREATE TEXT SEARCH DICTIONARY traxxx_dict (
TEMPLATE = pg_catalog.simple,
stopwords = traxxx
@@ -874,6 +858,12 @@ exports.up = knex => Promise.resolve()
COPY = english
);
ALTER TABLE releases_search
ADD COLUMN document tsvector;
CREATE UNIQUE INDEX unique_actor_slugs_network ON actors (slug, entity_id);
CREATE UNIQUE INDEX unique_actor_slugs ON actors (slug, (entity_id IS NULL));
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;