Ignore non-alias fields that only exist in directus_fields (#12860)

* Ignore non-alias fields that only exist in directus_fields

Fixes #12857

* Organize imports
This commit is contained in:
Rijk van Zanten
2022-04-19 14:44:32 -04:00
committed by GitHub
parent f7c8789800
commit d652a12008

View File

@@ -1,9 +1,10 @@
import SchemaInspector from '@directus/schema';
import { Accountability, SchemaOverview, Filter } from '@directus/shared/types';
import { Accountability, Filter, SchemaOverview } from '@directus/shared/types';
import { toArray } from '@directus/shared/utils';
import { Knex } from 'knex';
import { mapValues } from 'lodash';
import { getCache, setSystemCache } from '../cache';
import { ALIAS_TYPES } from '../constants';
import getDatabase from '../database';
import { systemCollectionRows } from '../database/system-data/collections';
import { systemFieldRows } from '../database/system-data/fields';
@@ -135,6 +136,9 @@ async function getDatabaseSchema(
const existing = result.collections[field.collection].fields[field.field];
const column = schemaOverview[field.collection].columns[field.field];
const special = field.special ? toArray(field.special) : [];
if (ALIAS_TYPES.some((type) => special.includes(type)) === false && !existing) continue;
const type = (existing && getLocalType(column, { special })) || 'alias';
let validation = field.validation ?? null;