Skip to content
Appwrite Databases

Managed PostgreSQL and databases for every model_

Run managed PostgreSQL next to tables, documents, and vectors. Connect with Prisma or psql, install pgvector, and scale dedicated compute with backups, replicas, and PITR.

acme / orders-prod
Connected

Query

12 msRun
SELECT u.email, o.total, o.status
FROM orders o
JOIN users u ON u.id = o.user_id
WHERE o.created_at > now() - interval '1 day'
ORDER BY o.total DESC LIMIT 4;
emailtotalstatus
paige@acme.io$1,240.00paid
walter@acme.io$980.50paid
happy@acme.io$642.10pending
toby@acme.io$415.00refunded

Five engines for tables, documents, vectors, and native SQL

  • TablesDB
  • DocumentsDB
  • VectorsDB
  • PostgreSQL
  • MySQL

Five engines, two categories

Appwrite DBs cover tables, documents, and vectors. Native DBs bring managed PostgreSQL and MySQL when you need full SQL control. Pick the model that matches your data, then operate every engine from the same Console and project.

Appwrite DBs

Managed databases built into Appwrite for app data, documents, and AI workloads.

TablesDB

Relational-style tables, columns, and indexes for structured data and complex queries.

Query.equal('plan', 'pro')

DocumentsDBBeta

Flexible JSON documents with filters and full-text search for evolving schemas.

{ "tags": ["new"] }

VectorsDBBeta

Embeddings and similarity search for semantic retrieval and AI features.

[0.12, -0.48, 0.91, …]
Native DBs

Dedicated managed PostgreSQL and MySQL engines you connect to with standard SQL clients.

PostgreSQLBeta

Managed PostgreSQL hosting with full SQL, pgvector, and portable schemas for Prisma, Drizzle, and existing tooling.

SELECT * FROM orders;

MySQLBeta

Familiar MySQL compatibility for common relational apps and migrations.

SHOW TABLES;

Serverless or dedicated compute

Start on a shared serverless pool when you want speed and simplicity. Move to dedicated specifications when you need isolated resources, higher connection limits, and production options like replicas and PITR. Choose at create time or upgrade later.

Serverless

Default

Shared pool. Fast to create, no capacity planning.

Shared compute pool

Upgrade compute

Dedicated

Production

Isolated compute with replicas, HA, and PITR.

CPU2 vCPU
Memory4 GB
Connections48 / 200
  • Isolated resources
  • Read replicas & HA
  • Point-in-time recovery

Replication and high availability

Dedicated databases run behind a connection pooler with a primary for writes and read replicas for query scale and failover. Choose asynchronous, synchronous, or quorum sync mode, then promote a replica when you need to move write traffic.

PgDog

Connection pooler

Connections

48 / 200

orders-1
Read replica

Reads

CPU28%
Memory47%
orders-0
Primary instance

Writes

CPU42%
Memory61%
orders-2
Read replica

Reads

CPU31%
Memory44%
Sync modeAsynchronousSynchronousQuorum

Backups and point-in-time recovery

Automate encrypted hot backups with policies, or create a manual backup when you need a snapshot now. Enable PITR on dedicated databases to restore to a specific moment after accidental deletes, failed migrations, or bad writes.

Backup policies

Encrypted

Hot backups with zero downtime and fast recovery.

Hourly

Runs every hour, retained for 24 hours

Daily

Runs every day, retained for 7 days

Point-in-time recovery (PITR)

Retention 7 days

Restore to a specific moment beyond the latest backup.

Restore time

Sep 30, 14:32:05 UTC

Sep 26Now

Restore completed

orders-prod · 14:32:05 UTC

Permissions wired to Auth

Scope TablesDB and DocumentsDB access with users, teams, and roles from Appwrite Auth. Set rules at the table, collection, row, or document level so each tenant only sees their data.

team:acme

Team

role:admin

Role

user:owner

User

orders3 rules
PermissionsReadCreateUpdateDelete
team:acme
role:admin
user:owner

Rows

row_8f2cuser:paige/readuser:paige/update

Queries, relationships, and transactions

Filter, order, and paginate from the SDKs and Console. Model related data with relationships, run multi-step writes in transactions, and use bulk operations when you need to update many rows or documents at once.

2 filtersQuery.equal('status', 'active')Query.equal('teamId', 'acme')

Launch checklist

row_01 · teamId: acme

active

Billing migration

row_02 · teamId: acme

active

Onboarding emails

row_03 · teamId: acme

active

Relationships

teams/acme

Acme Engineering

Link related tables without custom joins.

Transaction

Completed
  1. createRow('orders')
  2. updateRow('teams')
  3. deleteRow('drafts')

Commit multi-step writes atomically.

Managed PostgreSQL and MySQL

Hosted PostgreSQL and MySQL with standard clients and the in-console SQL editor. Use pgvector, PostGIS, portable schemas, and the ORMs you already run.

PostgreSQL

MySQL

psql · orders-prod
Connected
$ psql "$DATABASE_URL"
SSL connection (protocol: TLSv1.3)
app=> CREATE EXTENSION postgis;
CREATE EXTENSION
app=> SELECT count(*) FROM stores
app->   WHERE ST_DWithin(geom, $1, 5000);
 count
-------
    42
(1 row)
app=> 

Extensions

pgvectorPostGISpg_trgm

Works with your ORM and toolstack

Use the same connection strings with Prisma, Drizzle, Sequelize, TypeORM, SQLAlchemy, psql, and the rest of your SQL toolchain. Copy ready-made snippets from the Console Connect tab and keep shipping with the stack your team already knows.

postgresql://app:••••@postgres.appwrite.cloud:5432/app

Prisma

Type-safe schema and client for Node.js and TypeScript.

Drizzle

Lightweight TypeScript ORM with SQL-like query builder.

Sequelize

Promise-based ORM for Node.js with multi-dialect support.

TypeORM

Active Record and Data Mapper patterns for TypeScript.

SQLAlchemy

Python SQL toolkit and ORM for expressive queries.

psql

Official PostgreSQL CLI for ad-hoc SQL and schema exploration.

Tools built for developers and agents_

API-first by design. Use the Console, Realtime, SDKs, CLI, Terraform, MCP, and agent skills on the same project.

FAQ_

Yes. Native PostgreSQL databases are dedicated, managed PostgreSQL instances in your project region. You connect with psql, Prisma, Drizzle, or any PostgreSQL driver over TLS. Appwrite provisions compute, backups, replicas, a connection pooler, and point-in-time recovery. PostgreSQL 18 is the default, with 17 also supported.

Appwrite Databases include five engines in two categories. Appwrite DBs are TablesDB for relational-style tables and columns, DocumentsDB for flexible JSON documents, and VectorsDB for embeddings and similarity search. Native DBs are managed PostgreSQL and MySQL for teams that need full SQL compatibility, extensions, and portable schemas.

Choose TablesDB, DocumentsDB, or VectorsDB when you want Appwrite SDKs, Console workflows, and Auth-aware permissions out of the box. Choose PostgreSQL or MySQL when you need advanced SQL, existing ORM tooling, extensions such as pgvector, or to run schemas you already operate elsewhere.

Serverless databases run on a shared pool and are the fastest way to start. Billing is usage-based: there is no fixed compute fee, and you pay for storage plus reads and writes against your plan quota (then overage). Dedicated databases provision isolated compute for predictable performance, higher connection limits, and production options such as read replicas, high availability, and point-in-time recovery. Billing is a fixed monthly compute tier per database (from $10/mo), with reads and writes included in the tier. HA replicas and PITR are optional add-ons, and extra storage or bandwidth is billed as overage. You pick a specification when you create the database and can upgrade later.

On serverless databases, replication and high availability are abstracted and managed by the platform, so you do not configure replicas or sync mode yourself. On dedicated databases, traffic can enter through a connection pooler such as PgDog or ProxySQL. A primary instance accepts reads and writes, and read replicas scale query traffic and improve failover resilience. High availability is enabled when replica count is greater than zero. Choose asynchronous, synchronous, or quorum sync mode, and promote a replica from the Console when you need to move write traffic.

Yes on Appwrite Cloud for supported plans and engines. Create automated backup policies or run manual backups from the Backups tab. Point-in-time recovery (PITR) on dedicated databases lets you restore to a specific moment beyond the latest scheduled backup, which helps after accidental deletes, failed migrations, or bad writes.

Yes. TablesDB and DocumentsDB permissions can reference users, teams, and roles from Appwrite Auth at the table, collection, row, and document level. Scope data per customer or workspace without building custom access control.

Yes. Appwrite DBs support filters, ordering, pagination, relationships, transactions, bulk operations, and geo queries through the SDKs and Console. Native PostgreSQL and MySQL databases support full SQL from the in-console editor and your existing SQL clients.

Start building with Databases_

Create a database, choose your engine and compute model, and query your first data in minutes.