4

I have a few tables in the database in a Hasura cluster. I want to export one them as a CSV file (with the data). How can I do this?

sandip
  • 105
  • 1
  • 9

2 Answers2

4

You can follow one of the following methods:

  1. Connect to the database and use psql to export data as CSV:

    a) Directly access the underlying Postgres db instance:

    hasura microservice port-forward postgres -n hasura --local-port 6432

    b) follow this SO question to actually export data as a CSV file (assumes you have psql installed).

  2. Use the data APIs to write a simple service that can convert JSON to CSV and save it to a file.

  3. If the size of the table isn't huge, you can also just use the api-explorer UI (either the Data section or the SQL interface) to display all the rows and copy & paste them into a file. It's pretty straightforward to convert this file into CSV format.
sandip
  • 105
  • 1
  • 9
2

Hasura exposes and API endpoint for accessing pg_dump of the underlying database.

https://hasura.io/docs/1.0/graphql/core/api-reference/pgdump.html#pg-dump-api-reference

curl --location --request POST 'https://<hasura-hostname>/v1alpha1/pg_dump' --header 'x-hasura-admin-secret: <password>' --header 'Content-Type: application/json' --data-raw '{  "opts": ["-O", "-x", "--schema", "public", "--schema", "auth"],  "clean_output": true}' -o backup.sql
Rodrigo Ribeiro
  • 249
  • 3
  • 8