directus
41 строка · 1.5 Кб
1import type { Knex } from 'knex';
2
3export async function up(knex: Knex): Promise<void> {
4await knex.schema.createTable('directus_shares', (table) => {
5table.uuid('id').primary().notNullable();
6table.string('name');
7table.string('collection', 64).references('collection').inTable('directus_collections').onDelete('CASCADE');
8table.string('item');
9table.uuid('role').references('id').inTable('directus_roles').onDelete('CASCADE');
10table.string('password');
11table.uuid('user_created').references('id').inTable('directus_users').onDelete('SET NULL');
12table.timestamp('date_created').defaultTo(knex.fn.now());
13
14// This was changed after the migration went live to retroactively fix mysql5, see #10693
15table.timestamp('date_start').nullable().defaultTo(null);
16table.timestamp('date_end').nullable().defaultTo(null);
17
18table.integer('times_used').defaultTo(0);
19table.integer('max_uses');
20});
21
22await knex.schema.alterTable('directus_sessions', (table) => {
23table.dropColumn('data');
24});
25
26await knex.schema.alterTable('directus_sessions', (table) => {
27table.setNullable('user');
28table.uuid('share').references('id').inTable('directus_shares').onDelete('CASCADE');
29});
30}
31
32export async function down(knex: Knex): Promise<void> {
33await knex.schema.alterTable('directus_sessions', (table) => {
34table.uuid('user').notNullable().alter();
35table.json('data');
36table.dropForeign('share');
37table.dropColumn('share');
38});
39
40await knex.schema.dropTable('directus_shares');
41}
42