directus
36 строк · 983.0 Байт
1import { parseJSON } from '@directus/utils';
2import type { Knex } from 'knex';
3
4export async function up(knex: Knex): Promise<void> {
5const groups = await knex.select('*').from('directus_fields').where({ interface: 'group-standard' });
6
7const raw = [];
8const detail = [];
9
10for (const group of groups) {
11const options = typeof group.options === 'string' ? parseJSON(group.options) : group.options || {};
12
13if (options.showHeader === true) {
14detail.push(group);
15} else {
16raw.push(group);
17}
18}
19
20for (const field of raw) {
21await knex('directus_fields').update({ interface: 'group-raw' }).where({ id: field.id });
22}
23
24for (const field of detail) {
25await knex('directus_fields').update({ interface: 'group-detail' }).where({ id: field.id });
26}
27}
28
29export async function down(knex: Knex): Promise<void> {
30await knex('directus_fields')
31.update({
32interface: 'group-standard',
33})
34.where({ interface: 'group-detail' })
35.orWhere({ interface: 'group-raw' });
36}
37