Postgres: Renaming relationships

An existing relationship can be renamed as follows:

  • Head to Data -> [table-name] -> Relationships in the console
  • Drop the existing relationship
  • Recreate the relationship with the new name

You can rename a relationship by changing the relationship name in the tables.yaml file inside the metadata directory:

 - table:
     schema: public
     name: articles
   object_relationships:
   - name: author
     using:
       foreign_key_constraint_on: author_id
 - table:
     schema: public
     name: authors

Apply the metadata by running:

hasura metadata apply

You can rename a relationship by using the rename_relationship metadata API:

POST /v1/query HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin

{
  "type": "rename_relationship",
  "args": {
    "table": "articles",
    "name": "article_details",
    "new_name": "article_detail"
  }
}

Note

You might not be allowed to drop a relationship if it has been referenced elsewhere (e.g. in a permissions rule).

In this case you will have to delete the references first, rename the relationship, and then re-add the references.