---
layout: article
title: PostgreSQL
description: Run a dedicated, native PostgreSQL database provisioned for your project and connect to it directly with standard PostgreSQL clients.
---

Appwrite native PostgreSQL databases give you a managed PostgreSQL instance provisioned for your project. You pick the compute specification, and Appwrite provisions the engine in your project's region with its own storage, networking, and credentials, exposed through a per-database public hostname secured with TLS.

A native PostgreSQL database gives you the raw engine: you connect with `psql` or any PostgreSQL driver, bring your own ORM and migrations, and use the full feature set of PostgreSQL, with no Appwrite layer in between. If you want Appwrite SDKs, platform permissions, and serverless scaling for app data, use [TablesDB](/docs/products/databases/tablesdb) for relational data, [DocumentsDB](/docs/products/databases/documentsdb) for schemaless documents, or [VectorsDB](/docs/products/databases/vectorsdb) for embeddings instead.

# Supported versions

Appwrite manages the database container, storage, backups, and networking. You bring the application.

New databases run PostgreSQL 18 by default, and you can select PostgreSQL 17 on create instead. The database listens on the standard PostgreSQL port, 5432.

The version is selected on create and can be upgraded later. Upgrades run online: a second instance is provisioned on the new version, data is streamed over with logical replication, and traffic cuts over once replication is caught up, with no read or write outages and no manual dump-and-restore.

A new database starts in a `provisioning` state and becomes `ready` within a few minutes. Large specifications or high-availability configurations take longer to schedule; poll the database status or watch the Console until it reports `ready`.

# Regions

A native database lives in the same region as the project that owns it. There is no per-database region selector. Each database gets a unique hostname in the form `db-<hash>.<region>.appwrite.center`, and data does not leave the region.

# Feature overview

- [Connections](/docs/products/databases/postgresql/connections): Connect with `psql` or any driver. Credentials are rotatable from the Console and API.
- [Connection pooling](/docs/products/databases/postgresql/connection-pooling): Per-database connection pooler with automatic read/write split when high availability is enabled.
- [Extensions](/docs/products/databases/postgresql/extensions): Install PostgreSQL extensions like PostGIS, pgvector, and pg_trgm.
- [Backups](/docs/products/databases/postgresql/backups): Scheduled backups, manual backups, restores, and point-in-time recovery.
- [Branches](/docs/products/databases/postgresql/branches): Spin up an ephemeral copy of your database in seconds from a storage snapshot.
- [High availability](/docs/products/databases/postgresql/high-availability): Up to five synchronous, semi-synchronous, or asynchronous replicas with automatic failover.
- [Scaling](/docs/products/databases/postgresql/scaling): Resize compute online and grow storage automatically as your data grows.
- [Network security](/docs/products/databases/postgresql/network-security): TLS by default, optional IP allowlists, and a dedicated hostname per database.
- [Monitoring](/docs/products/databases/postgresql/monitoring): Live compute, connection, storage, and workload metrics, with an active-connections inspector.
- [Maintenance](/docs/products/databases/postgresql/maintenance): Maintenance windows, online version upgrades, and pause and resume.

# Specifications and pricing

Each database runs against one of the following compute specifications, billed monthly:

| Tier | Specification | CPU | Memory | Storage | Bandwidth | Connections | Price |
|-----------------|----------------|---------|--------|---------|-----------|-------------|---------|
| Starter | `s-1vcpu-1gb` | 1 core | 1 GB | 10 GB | 50 GB | 100 | $10/mo |
| Standard | `s-2vcpu-2gb` | 2 cores | 2 GB | 25 GB | 200 GB | 200 | $20/mo |
| Standard Plus | `s-2vcpu-4gb` | 2 cores | 4 GB | 50 GB | 400 GB | 500 | $49/mo |
| Professional | `s-4vcpu-8gb` | 4 cores | 8 GB | 200 GB | 1 TB | 1,000 | $85/mo |
| Business | `s-4vcpu-16gb` | 4 cores | 16 GB | 500 GB | 2 TB | 2,000 | $160/mo |
| Business Plus | `s-4vcpu-32gb` | 4 cores | 32 GB | 1 TB | 5 TB | 4,000 | $299/mo |
| Enterprise | `s-8vcpu-32gb` | 8 cores | 32 GB | 2 TB | 7.5 TB | 5,000 | $425/mo |
| Enterprise Plus | `s-8vcpu-64gb` | 8 cores | 64 GB | 3 TB | 10 TB | 10,000 | $699/mo |

The Storage and Bandwidth columns are the monthly allowances included with each tier. Usage beyond them is billed as overage, and optional features are billed as add-ons on top of the tier price:

| Add-on | Price |
|----------------------------|---------------------------------|
| Storage overage | $0.125 per GB per month |
| Bandwidth overage | $0.08 per GB per month |
| High availability replica | 50% of the tier price, per replica |
| Point-in-time recovery | 20% of the tier price |

You can [resize between tiers](/docs/products/databases/postgresql/scaling) at any time with zero downtime.

# Limits

The following limits apply per database:

| Limit | Value |
|--------------------------------|-----------------------------------------------------------|
| Databases per project | 10 |
| High availability replicas | 0 - 5 |
| IP allowlist entries | 100 |
| Backup retention | 1 - 365 days |
| Point-in-time recovery window | 1 - 35 days |
| Extensions installed | 50 |
| Max simultaneous connections | 10,000 platform cap, lower on smaller specifications |

# Billing and plan requirements

Native databases are available on paid plans, and a payment method must be attached to your organization. Each database is billed by the hour against its [compute specification](#specifications), with separate line items for overages and add-ons. See [pricing](/pricing) for details.
