38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { Knex } from 'knex';
|
|
|
|
export async function up(knex: Knex): Promise<void> {
|
|
return knex.schema.createTable('content_relation', (table) => {
|
|
table.increments('id').primary();
|
|
table.integer('first_content_id').unsigned().notNullable();
|
|
table.integer('second_content_id').unsigned().notNullable();
|
|
table
|
|
.enum('relation', [
|
|
'support',
|
|
'depend',
|
|
'variant',
|
|
'alternative',
|
|
'visual',
|
|
'related',
|
|
'comment',
|
|
'part',
|
|
])
|
|
.notNullable();
|
|
table.string('relation_name', 255).nullable();
|
|
table
|
|
.foreign('first_content_id')
|
|
.references('content.id')
|
|
.onDelete('CASCADE');
|
|
table
|
|
.foreign('second_content_id')
|
|
.references('content.id')
|
|
.onDelete('CASCADE');
|
|
table.uuid('created_by').nullable();
|
|
table.uuid('updated_by').nullable();
|
|
table.timestamps(true, true);
|
|
});
|
|
}
|
|
|
|
export async function down(knex: Knex): Promise<void> {
|
|
return knex.schema.dropTable('content_relation');
|
|
}
|