---
title: PostgreSQL
sidebar_label: PostgreSQL
description: "PostgreSQL is an advanced open-source relational database."
hide_title: true
---

{/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
*/}

import { DatabasePage } from '@site/src/components/databases';

export const databaseInfo = {"engine":"postgresql","engine_name":"PostgreSQL","module":"postgres","documentation":{"description":"PostgreSQL is an advanced open-source relational database.","logo":"postgresql.svg","homepage_url":"https://www.postgresql.org/","categories":["TRADITIONAL_RDBMS","OPEN_SOURCE"],"pypi_packages":["psycopg2"],"connection_string":"postgresql://{username}:{password}@{host}:{port}/{database}","default_port":5432,"parameters":{"username":"Database username","password":"Database password","host":"For localhost: localhost or 127.0.0.1. For AWS: endpoint URL","port":"Default 5432","database":"Database name"},"notes":"The psycopg2 library comes bundled with Superset Docker images.","connection_examples":[{"description":"Basic connection","connection_string":"postgresql://{username}:{password}@{host}:{port}/{database}"},{"description":"With SSL required","connection_string":"postgresql://{username}:{password}@{host}:{port}/{database}?sslmode=require"}],"docs_url":"https://www.postgresql.org/docs/","sqlalchemy_docs_url":"https://docs.sqlalchemy.org/en/13/dialects/postgresql.html","compatible_databases":[{"name":"Hologres","description":"Alibaba Cloud real-time interactive analytics service, fully compatible with PostgreSQL 11.","logo":"hologres.png","homepage_url":"https://www.alibabacloud.com/product/hologres","pypi_packages":["psycopg2"],"connection_string":"postgresql+psycopg2://{username}:{password}@{host}:{port}/{database}","parameters":{"username":"AccessKey ID of your Alibaba Cloud account","password":"AccessKey secret of your Alibaba Cloud account","host":"Public endpoint of the Hologres instance","port":"Port number of the Hologres instance","database":"Name of the Hologres database"},"categories":["PROPRIETARY"]},{"name":"TimescaleDB","description":"Open-source relational database for time-series and analytics, built on PostgreSQL.","logo":"timescale.png","homepage_url":"https://www.timescale.com/","pypi_packages":["psycopg2"],"connection_string":"postgresql://{username}:{password}@{host}:{port}/{database}","connection_examples":[{"description":"Timescale Cloud (SSL required)","connection_string":"postgresql://{username}:{password}@{host}:{port}/{database}?sslmode=require"}],"notes":"psycopg2 comes bundled with Superset Docker images.","docs_url":"https://docs.timescale.com/","categories":["OPEN_SOURCE"]},{"name":"YugabyteDB","description":"Distributed SQL database built on top of PostgreSQL.","logo":"yugabyte.png","homepage_url":"https://www.yugabyte.com/","pypi_packages":["psycopg2"],"connection_string":"postgresql://{username}:{password}@{host}:{port}/{database}","notes":"psycopg2 comes bundled with Superset Docker images.","docs_url":"https://www.yugabyte.com/","categories":["OPEN_SOURCE"]},{"name":"Supabase","description":"Open-source Firebase alternative built on top of PostgreSQL, providing a full backend-as-a-service with a hosted Postgres database.","logo":"supabase.svg","homepage_url":"https://supabase.com/","pypi_packages":["psycopg2"],"connection_string":"postgresql://{username}:{password}@{host}:{port}/{database}","connection_examples":[{"description":"Supabase project (connection pooler)","connection_string":"postgresql://{username}.{project_ref}:{password}@aws-0-{region}.pooler.supabase.com:6543/{database}"}],"parameters":{"username":"Database user (default: postgres)","password":"Database password","host":"Supabase project host (from project settings)","port":"Default 5432 (direct) or 6543 (pooler)","database":"Database name (default: postgres)","project_ref":"Supabase project reference (from project settings)","region":"Supabase project region (e.g., us-east-1)"},"notes":"Find connection details in your Supabase project dashboard under Settings > Database. Use the connection pooler (port 6543) for better connection management.","docs_url":"https://supabase.com/docs/guides/database/connecting-to-postgres","categories":["HOSTED_OPEN_SOURCE"]},{"name":"Google AlloyDB","description":"Google Cloud's PostgreSQL-compatible database service for demanding transactional and analytical workloads.","logo":"alloydb.png","homepage_url":"https://cloud.google.com/alloydb","pypi_packages":["psycopg2"],"connection_string":"postgresql://{username}:{password}@{host}:{port}/{database}","parameters":{"username":"Database user (default: postgres)","password":"Database password","host":"AlloyDB instance IP or Auth Proxy address","port":"Default 5432","database":"Database name"},"notes":"For public IP connections, use the AlloyDB Auth Proxy for secure access. Private IP connections can connect directly.","docs_url":"https://cloud.google.com/alloydb/docs","categories":["CLOUD_GCP","HOSTED_OPEN_SOURCE"]},{"name":"Neon","description":"Serverless PostgreSQL with branching, scale-to-zero, and bottomless storage.","logo":"neon.png","homepage_url":"https://neon.tech/","pypi_packages":["psycopg2"],"connection_string":"postgresql://{username}:{password}@{host}/{database}?sslmode=require","parameters":{"username":"Neon role name","password":"Neon role password","host":"Neon hostname (e.g., ep-cool-name-123456.us-east-2.aws.neon.tech)","database":"Database name (default: neondb)"},"notes":"SSL is required for all connections. Find connection details in the Neon console under Connection Details.","docs_url":"https://neon.tech/docs/connect/connect-from-any-app","categories":["HOSTED_OPEN_SOURCE"]},{"name":"Amazon Aurora PostgreSQL","description":"Amazon Aurora PostgreSQL is a fully managed, PostgreSQL-compatible relational database with up to 5x the throughput of standard PostgreSQL.","logo":"aws-aurora.jpg","homepage_url":"https://aws.amazon.com/rds/aurora/","pypi_packages":["sqlalchemy-aurora-data-api"],"connection_string":"postgresql+auroradataapi://{aws_access_id}:{aws_secret_access_key}@/{database_name}?aurora_cluster_arn={aurora_cluster_arn}&secret_arn={secret_arn}&region_name={region_name}","parameters":{"aws_access_id":"AWS Access Key ID","aws_secret_access_key":"AWS Secret Access Key","database_name":"Database name","aurora_cluster_arn":"Aurora cluster ARN","secret_arn":"Secrets Manager ARN for credentials","region_name":"AWS region (e.g., us-east-1)"},"notes":"Uses the Data API for serverless access. Standard PostgreSQL connections also work with psycopg2.","categories":["CLOUD_AWS","HOSTED_OPEN_SOURCE"]}],"custom_errors":[{"regex_name":"CONNECTION_INVALID_USERNAME_REGEX","message_template":"The username \"%(username)s\" does not exist.","error_type":"CONNECTION_INVALID_USERNAME_ERROR","category":"Authentication","description":"Invalid username","issue_codes":[1012],"invalid_fields":["username"]},{"regex_name":"CONNECTION_INVALID_PASSWORD_REGEX","message_template":"The password provided for username \"%(username)s\" is incorrect.","error_type":"CONNECTION_INVALID_PASSWORD_ERROR","category":"Authentication","description":"Invalid password","issue_codes":[1013],"invalid_fields":["username","password"]},{"regex_name":"CONNECTION_INVALID_PASSWORD_NEEDED_REGEX","message_template":"Please re-enter the password.","error_type":"CONNECTION_ACCESS_DENIED_ERROR","category":"Authentication","description":"Access denied","issue_codes":[1014,1015],"invalid_fields":["password"]},{"regex_name":"CONNECTION_INVALID_HOSTNAME_REGEX","message_template":"The hostname \"%(hostname)s\" cannot be resolved.","error_type":"CONNECTION_INVALID_HOSTNAME_ERROR","category":"Connection","description":"Invalid hostname","issue_codes":[1007],"invalid_fields":["host"]},{"regex_name":"CONNECTION_PORT_CLOSED_REGEX","message_template":"Port %(port)s on hostname \"%(hostname)s\" refused the connection.","error_type":"CONNECTION_PORT_CLOSED_ERROR","category":"Connection","description":"Port closed or refused","issue_codes":[1008],"invalid_fields":["host","port"]},{"regex_name":"CONNECTION_HOST_DOWN_REGEX","message_template":"The host \"%(hostname)s\" might be down, and can't be reached on port %(port)s.","error_type":"CONNECTION_HOST_DOWN_ERROR","category":"Connection","description":"Host unreachable","issue_codes":[1009],"invalid_fields":["host","port"]},{"regex_name":"CONNECTION_UNKNOWN_DATABASE_REGEX","message_template":"Unable to connect to database \"%(database)s\".","error_type":"CONNECTION_UNKNOWN_DATABASE_ERROR","category":"Connection","description":"Unknown database","issue_codes":[1015],"invalid_fields":["database"]},{"regex_name":"COLUMN_DOES_NOT_EXIST_REGEX","message_template":"We can't seem to resolve the column \"%(column_name)s\" at line %(location)s.","error_type":"COLUMN_DOES_NOT_EXIST_ERROR","category":"Query","description":"Column not found","issue_codes":[1003,1004]},{"regex_name":"SYNTAX_ERROR_REGEX","message_template":"Please check your query for syntax errors at or near \"%(syntax_error)s\". Then, try running your query again.","error_type":"SYNTAX_ERROR","category":"Query","description":"SQL syntax error","issue_codes":[1030]}]},"time_grains":{"SECOND":true,"FIVE_SECONDS":true,"THIRTY_SECONDS":true,"MINUTE":true,"FIVE_MINUTES":true,"TEN_MINUTES":true,"FIFTEEN_MINUTES":true,"THIRTY_MINUTES":true,"HALF_HOUR":false,"HOUR":true,"SIX_HOURS":false,"DAY":true,"WEEK":true,"WEEK_STARTING_SUNDAY":false,"WEEK_STARTING_MONDAY":false,"WEEK_ENDING_SATURDAY":false,"WEEK_ENDING_SUNDAY":false,"MONTH":true,"QUARTER":true,"QUARTER_YEAR":false,"YEAR":true},"score":104,"max_score":201,"joins":true,"subqueries":true,"supports_dynamic_schema":true,"supports_catalog":true,"supports_dynamic_catalog":false,"ssh_tunneling":true,"query_cancelation":true,"supports_file_upload":true,"user_impersonation":false,"query_cost_estimation":true,"sql_validation":true};

<DatabasePage name="PostgreSQL" database={databaseInfo} />
