Docs

Postgres in Sovaria

The Postgres version and extensions your project has, schemas, data types, keys and constraints, views, functions and triggers, what the plan limits, and which Postgres features behave differently through the API.

Updated Oct 17, 2026Open in console

Every project has its own PostgreSQL 16 database. Everything you know about Postgres applies: SQL, schemas, constraints, views, functions, triggers, indexes and transactions. Sovaria adds the API, access policies and auth helpers around it.

Extensions

Turn extensions on under Schema › Extensions (or create extension in the SQL editor). These are available:

ExtensionFor
vector (pgvector)Embeddings and similarity search — Vector search and embeddings
pg_graphqlA GraphQL API over your tables
pg_stat_statementsQuery statistics behind Query Performance
pgcrypto, uuid-osspHashing, encryption, gen_random_uuid()
pg_trgm, unaccent, citextFuzzy text search, accent-insensitive and case-insensitive text
btree_gin, btree_gistExtra index operator classes
hstore, ltreeKey-value columns, tree paths

Superuser-only extensions can't be installed. For scheduled jobs use function schedules (Event triggers) rather than an in-database scheduler.

FreeProUltraTeamEnterprise
Database extensionsStandardAllAllAllAll custom

Schemas, tables and the rest

  • Your tables live in public by default; create more schemas to group them. The auth schema holds the auth helpers (Auth helpers in SQL); don't create tables there.
  • Use the types you need: uuid and bigint generated always as identity for keys, timestamptz for times, jsonb for flexible data, numeric for money, arrays, enums.
  • Primary keys, foreign keys (with on delete cascade or set null), unique and check constraints and defaults all work, and the Table Editor sets most of them for you.
  • Views (use with (security_invoker = true) so they respect row-level security), materialized views, SQL and PL/pgSQL functions and triggers are supported.
FreeProUltraTeamEnterprise
Tables1002,00010,00050,000200,000
Views255002,00010,00050,000
Stored procedures205002,00010,00050,000
Triggers205002,00010,00050,000
Indexes10010,00030,000100,000500,000
Schemas per database5502001,0005,000
Database disk500 MB8 GB30 GB200 GB1 TB

Through the API

TopicHow it works
One statement per request/api/v1/sql/query runs one SELECT, INSERT, UPDATE, DELETE or EXPLAIN; schema changes belong in the SQL editor or migrations.
ValuesAlways as parameters ($1, $2…), never pasted into SQL.
Rows per queryCapped by plan (below); page through larger results.
Statement timeA default timeout per plan; a client may ask for more with X-Statement-Timeout-Ms, up to the plan's maximum.
Transactions across requestsPOST /api/v1/data/rel/transaction/begin, then pass the txid and commit or rollback (REST: tables, transactions and vectors).
Session stateset_config, SET ROLE and changing the request's identity are refused.
FreeProUltraTeamEnterprise
Rows one SQL query may return1,0005,00010,00025,00050,000
Default SQL statement timeout (ms)3 s8 s15 s30 s60 s
Longest SQL statement timeout a client may request (ms)8 s30 s60 s120 s300 s
Concurrent database connections202005002,00010,000

Database errors

Postgres errorMeans
23505 unique_violationA row with that value already exists.
23503 foreign_key_violationThe referenced row doesn't exist, or other rows still point to it.
23502 not_null_violationA required column was empty.
23514 check_violationA check constraint refused the value.
42501 insufficient_privilege / new row violates row-level securityA row-level security policy refused the row (Row-level security and access).
57014 query_canceledThe statement timeout stopped it — add an index or raise the timeout.
42P01 undefined_tableWrong table name or schema (names are case-sensitive when quoted).
Something unclear or missing on this page?Tell us