directus

Форк
0
/
20211211A-add-shares.ts 
41 строка · 1.5 Кб
1
import type { Knex } from 'knex';
2

3
export async function up(knex: Knex): Promise<void> {
4
	await knex.schema.createTable('directus_shares', (table) => {
5
		table.uuid('id').primary().notNullable();
6
		table.string('name');
7
		table.string('collection', 64).references('collection').inTable('directus_collections').onDelete('CASCADE');
8
		table.string('item');
9
		table.uuid('role').references('id').inTable('directus_roles').onDelete('CASCADE');
10
		table.string('password');
11
		table.uuid('user_created').references('id').inTable('directus_users').onDelete('SET NULL');
12
		table.timestamp('date_created').defaultTo(knex.fn.now());
13

14
		// This was changed after the migration went live to retroactively fix mysql5, see #10693
15
		table.timestamp('date_start').nullable().defaultTo(null);
16
		table.timestamp('date_end').nullable().defaultTo(null);
17

18
		table.integer('times_used').defaultTo(0);
19
		table.integer('max_uses');
20
	});
21

22
	await knex.schema.alterTable('directus_sessions', (table) => {
23
		table.dropColumn('data');
24
	});
25

26
	await knex.schema.alterTable('directus_sessions', (table) => {
27
		table.setNullable('user');
28
		table.uuid('share').references('id').inTable('directus_shares').onDelete('CASCADE');
29
	});
30
}
31

32
export async function down(knex: Knex): Promise<void> {
33
	await knex.schema.alterTable('directus_sessions', (table) => {
34
		table.uuid('user').notNullable().alter();
35
		table.json('data');
36
		table.dropForeign('share');
37
		table.dropColumn('share');
38
	});
39

40
	await knex.schema.dropTable('directus_shares');
41
}
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.