Manage Relationships

Relationships between objects can be created or deleted with the editRelationshipConfiguration mutation.

The arguments for editing relationships are:

  • operation: The type of edit to make (e.g CREATE or UPDATE).
  • from_class: The name of the object class to make the relationship from
  • to_class: The name of the object class to make the relationship to
  • relationship_name: Name of the forward relationship from the from_class object to the to_class object
  • reverse_relationship_name: The name of the opposite relationship from the to_class to the from_class

πŸ“˜

All fields are required, for both create and delete operations!

When a new relationship is created it is always a many-to-many relationship, and the relationship will appear in both objects.

Create New Relationship

This example shows creating a new relationship between 2 objects.

mutation CreateRelationship {
  editRelationshipConfiguration(
    relationships: {
      from_class: Person
      operation: CREATE
      relationship_name: "genres"
      reverse_relationship_name: "people"
      to_class: Genre
    }
  ) {
    version
    messages
  }
}

Remove Existing Relationship

This example shows removing an existing relationship between Episode and Season.

πŸ“˜

When a relationship is removed, the data still remains in the database. So if you delete a relationship, activate the version, then decide you want to rollback, all the relationships between objects would continue to work as they did before the deletion.

mutation RemoveRelationship {
  editRelationshipConfiguration(
    relationships: {
      from_class: Episode
      operation: DELETE
      relationship_name: "seasons"
      reverse_relationship_name: "episodes"
      to_class: Season
    }
  ) {
    version
    messages
  }
}