Ошибка: там может быть только один фрагмент с именем "columnName"
Я изменяю формат моей схемы из этого:
var OldSchema = new GraphQLSchema({
query: queryType,
mutation: mutationType
});
к этому:
typeDef = `
type Query {
posts: [Post]
author: Author
}
`;
const NewSchema = makeExecutableSchema({
typeDefs: [typeDef],
resolvers: resolvers
});
Поскольку у меня много полей, и я хочу перенести их из старого формата в новый формат одно за другим, я использую функцию mergeSchemas из graphql-tools:
export const RootSchema = mergeSchemas({
schemas: [NewSchema, OldSchema]
});
Когда я пытаюсь создать запрос (который получает только поля из OldSchema), я получаю ошибку ** Может быть только один фрагмент с именем "долг".
Вот как выглядит мой запрос:
query {
person {
...personFragment
}
}
fragment conceptFragment on Person {
jobs {
... on techJob {
...activities
}
... on carpentryJob {
...skillSet
}
}
}
fragment activities on techJob {
duties {
...duty
}
}
fragment duty on Duties {
id
}
fragment skillSet on carpentryJob {
skills {
...dutiesSkill
}
}
fragment dutiesSkill on Skill {
duties {
...duty
}
}
Я знаю, что ошибка происходит при синтаксическом анализе, и кажется, что проверка запроса происходит для OldSchema и для RootSchema, но RootSchema является той, которая дает сбой.
2 ответа
Эта проблема была решена путем обновления до версии v14.0.0-rc.2. Там нет упоминания о решаемой проблеме.
Вы можете дать alias
к одному из фрагментов? Подобно:
fragment activities on techJob {
activities: duties {
...duty
}
}
А также
fragment dutiesSkill on Skill {
dutiesSkill: duties {
...duty
}
}