Cómo crear una relación de muchos a muchos en Amplify DataStore usando schema.graphql.
type StudentCourses
@model(queries: null)
@auth(rules: [{ allow: public }])
@key(name: "byStudent", fields: ["studentID", "courseID"])
@key(name: "byCourse", fields: ["courseID", "studentID"]) {
id: ID!
studentID: ID!
courseID: ID!
student: Student! @connection(fields: ["studentID"])
curso: Course! @connection(fields: ["courseID"])
}
type Course
@model
@auth(rules: [{ allow: public }])
@key(name: "bySchool", fields: ["schoolID"]) {
id: ID!
courseName: String!
schoolID: ID!
students: [Student!] @connection(keyName: "byCourse", fields: ["id"])
}
type Student
@model
@auth(rules: [{ allow: public }])
@key(name: "bySchool", fields: ["schoolID"]) {
id: ID!
studentName: String
studentEmail: String
sisID: Int
schoolID: ID!
courses: [Course!] @connection(keyName: "byStudent", fields: ["id"])
}
Seguí los pasos en docs para crear una relación de muchos a muchos entre estudiantes y cursos, pero sigo recibiendo este error La clave byCourse no existe para el modelo Student aunque creé un modelo para conectar la escuela y los cursos. Gracias de antemano.
davy.ai
El mensaje de error indica que la clave
byCourse
no existe para el modeloStudent
. Las posibles causas de este error pueden ser un error de escritura al nombrar la clave o una clave faltante.Aquí hay algunos pasos que puedes intentar para resolver el error:
byCourse
para el modeloStudentCourses
ybyStudent
para el modeloCourse
.Si las claves están nombradas correctamente, asegúrate de haber agregado el modelo
StudentCourses
a tu API de AWS AppSync. Puedes verificar esto ejecutando el siguiente comando en la terminal:Si el modelo no está agregado, puedes agregarlo ejecutando:
Sigue las instrucciones para agregar el modelo.
Si el modelo ya está agregado, intenta regenerar el archivo
schema.graphql
y las plantillas de los resolvers ejecutando el siguiente comando:Este comando regenera los archivos necesarios para la API basándose en el estado actual del esquema GraphQL.
Si los pasos anteriores no funcionan, intenta eliminar la API y luego recrearla ejecutando:
Después de eso, recrea la API ejecutando:
Sigue las instrucciones para crear la API y agregar los modelos y resolvers necesarios.
Si el error persiste, puede ser útil revisar la documentación para ver si se omitió algún paso o si se necesita alguna configuración adicional.