Move system fields out of DB

This commit is contained in:
rijkvanzanten
2020-10-29 13:06:37 -04:00
parent 3bf7f6e6a8
commit ee9baf02c0
8 changed files with 76 additions and 83 deletions

View File

@@ -16,6 +16,7 @@ import { cloneDeep } from 'lodash';
import Knex from 'knex';
import SchemaInspector from 'knex-schema-inspector';
import { getRelationType } from '../utils/get-relation-type';
import { systemFieldRows } from '../database/system-data/fields';
type GetASTOptions = {
accountability?: Accountability | null;
@@ -261,9 +262,12 @@ export default async function getASTFromQuery(
async function getFieldsInCollection(collection: string) {
const columns = (await schemaInspector.columns(collection)).map((column) => column.column);
const fields = (
await knex.select('field').from('directus_fields').where({ collection })
).map((field) => field.field);
const fields = [
...(await knex.select('field').from('directus_fields').where({ collection })).map(
(field) => field.field
),
...systemFieldRows.map((fieldMeta) => fieldMeta.field),
];
const fieldsInCollection = [
...columns,

View File

@@ -1,5 +1,6 @@
import database, { schemaInspector } from '../database';
import { uniq } from 'lodash';
import { systemFieldRows } from '../database/system-data/fields';
export default async function hasFields(fields: { collection: string; field: string }[]) {
const fieldsObject: { [collection: string]: string[] } = {};
@@ -33,6 +34,9 @@ export async function collectionHasFields(collection: string, fieldKeys: string[
const existingFields = uniq([
...columns.map(({ column }) => column),
...fields.map(({ field }) => field),
...systemFieldRows
.filter((fieldMeta) => fieldMeta.collection === collection)
.map((fieldMeta) => fieldMeta.field),
]);
for (const key of fieldKeys) {