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'));