99 lines
2.3 KiB
JavaScript
99 lines
2.3 KiB
JavaScript
exports.up = async (knex) => Promise.resolve()
|
|
.then(() => knex.schema.createTable('series', (table) => {
|
|
table.increments('id', 16);
|
|
|
|
table.integer('entity_id', 12)
|
|
.references('id')
|
|
.inTable('entities')
|
|
.notNullable();
|
|
|
|
table.integer('studio_id', 12)
|
|
.references('id')
|
|
.inTable('entities');
|
|
|
|
table.text('entry_id');
|
|
table.unique(['entity_id', 'entry_id']);
|
|
|
|
table.text('url', 1000);
|
|
table.text('title');
|
|
table.text('slug');
|
|
|
|
table.timestamp('date');
|
|
table.index('date');
|
|
|
|
table.enum('date_precision', ['year', 'month', 'week', 'day', 'hour', 'minute', 'second'])
|
|
.defaultTo('day');
|
|
|
|
table.text('description');
|
|
|
|
table.boolean('deep');
|
|
table.text('deep_url', 1000);
|
|
|
|
table.text('comment');
|
|
|
|
table.integer('created_batch_id', 12)
|
|
.references('id')
|
|
.inTable('batches')
|
|
.onDelete('cascade');
|
|
|
|
table.integer('updated_batch_id', 12)
|
|
.references('id')
|
|
.inTable('batches')
|
|
.onDelete('cascade');
|
|
|
|
table.datetime('created_at')
|
|
.defaultTo(knex.fn.now());
|
|
}))
|
|
.then(() => knex.schema.createTable('series_scenes', (table) => {
|
|
table.integer('serie_id', 16)
|
|
.notNullable()
|
|
.references('id')
|
|
.inTable('series')
|
|
.onDelete('cascade');
|
|
|
|
table.integer('scene_id', 16)
|
|
.notNullable()
|
|
.references('id')
|
|
.inTable('releases')
|
|
.onDelete('cascade');
|
|
|
|
table.unique(['serie_id', 'scene_id']);
|
|
|
|
table.datetime('created_at')
|
|
.defaultTo(knex.fn.now());
|
|
}))
|
|
.then(() => knex.schema.createTable('series_trailers', (table) => {
|
|
table.integer('serie_id', 16)
|
|
.unique()
|
|
.notNullable()
|
|
.references('id')
|
|
.inTable('series')
|
|
.onDelete('cascade');
|
|
|
|
table.text('media_id', 21)
|
|
.notNullable()
|
|
.references('id')
|
|
.inTable('media');
|
|
}))
|
|
.then(() => knex.schema.createTable('series_posters', (table) => {
|
|
table.integer('serie_id', 16)
|
|
.notNullable()
|
|
.references('id')
|
|
.inTable('series')
|
|
.onDelete('cascade');
|
|
|
|
table.text('media_id', 21)
|
|
.notNullable()
|
|
.references('id')
|
|
.inTable('media')
|
|
.onDelete('cascade');
|
|
|
|
table.unique('serie_id');
|
|
}));
|
|
|
|
exports.down = async (knex) => Promise.resolve()
|
|
.then(() => knex.schema.dropTable('series_covers'))
|
|
.then(() => knex.schema.dropTable('series_trailers'))
|
|
.then(() => knex.schema.dropTable('series_posters'))
|
|
.then(() => knex.schema.dropTable('series'));
|