directus

Форк
0
/
20210225A-add-relations-sort-field.ts 
34 строки · 943.0 Байт
1
import { parseJSON } from '@directus/utils';
2
import type { Knex } from 'knex';
3

4
export async function up(knex: Knex): Promise<void> {
5
	await knex.schema.alterTable('directus_relations', (table) => {
6
		table.string('sort_field');
7
	});
8

9
	const fieldsWithSort = await knex
10
		.select('collection', 'field', 'options')
11
		.from('directus_fields')
12
		.whereIn('interface', ['one-to-many', 'm2a-builder', 'many-to-many']);
13

14
	for (const field of fieldsWithSort) {
15
		const options = typeof field.options === 'string' ? parseJSON(field.options) : field.options ?? {};
16

17
		if ('sortField' in options) {
18
			await knex('directus_relations')
19
				.update({
20
					sort_field: options.sortField,
21
				})
22
				.where({
23
					one_collection: field.collection,
24
					one_field: field.field,
25
				});
26
		}
27
	}
28
}
29

30
export async function down(knex: Knex): Promise<void> {
31
	await knex.schema.alterTable('directus_relations', (table) => {
32
		table.dropColumn('sort_field');
33
	});
34
}
35

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

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

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

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