Running SQL commands on databaseΒΆ

If you want to run SQL statements directly on the database, this can be done in the following ways:


Currently, renaming of tables and columns are not allowed using SQL statements.

First launch the API console:

$ hasura api-console

Head to Data > SQL section in the console.



Check the This is a migration option before executing the query if you want to retain the query as a db migration.

Check the Track table option before executing a query to create a table/view if you want the Data microservice to track it and enable access to it via the APIs.

The run_sql endpoint of the Data microservice can be used to run SQL statements directly on the data.

run_sql is used to run arbitrary SQL statements. Multiple SQL statements can be separated by a ;, however, only the result of the last sql statement will be returned.

An example:

POST /v1/query HTTP/1.1
Content-Type: application/json
Authorization: Bearer <auth-token> # optional if cookie is set
X-Hasura-Role: admin

    "type": "run_sql",
    "args": {
        "sql": "CREATE UNIQUE INDEX ON films (title);"


You cannot save the query as a migration using the API

See the API reference for other caveats and details.