Docs
Plugins
Destinations
PostgreSQL
Overview

PostgreSQL Destination Plugin

Latest: v4.1.0

This destination plugin lets you sync data from a CloudQuery source to a PostgreSQL compatible database.

Supported database versions:

  • PostgreSQL >= v10
  • CockroachDB >= v20.2

Configuration

Example

This example configures a Postgresql destination, located at localhost:5432:

kind: destination
spec:
  name: "postgresql"
  registry: "github"
  path: "cloudquery/postgresql"
  version: "v4.1.0"

  spec:
    connection_string: "postgresql://postgres:pass@localhost:5432/postgres?sslmode=disable"

The (top level) spec section is described in the Destination Spec Reference.

Make sure you use environment variable expansion in production instead of committing the credentials to the configuration file directly.

PostgreSQL Spec

This is the (nested) spec used by the PostgreSQL destination Plugin.

  • connection_string (string, required)

    Connection string to connect to the database. This can be a URL or a DSN, as per pgxpool (opens in a new tab)

    • "postgres://jack:secret@localhost:5432/mydb?sslmode=prefer" connect with tcp and prefer TLS
    • "postgres://jack:secret@localhost:5432/mydb?sslmode=disable&application_name=pgxtest&search_path=myschema&connect_timeout=5" be explicit with all options
    • "postgres://localhost:5432/mydb?sslmode=disable" connect with os username cloudquery is being run as
    • "postgres:///mydb?host=/tmp" connect over unix socket
    • "dbname=mydb" unix domain socket, just specifying the db name - useful if you want to use peer authentication
    • "user=jack password=jack\\'ssooper\\\\secret host=localhost port=5432 dbname=mydb sslmode=disable" DSN with escaped backslash and single quote
  • pgx_log_level (string, optional. Default: "error")

    Available: "error", "warn", "info", "debug", "trace" define if and in which level to log pgx (opens in a new tab) call.

Note: Make sure you use environment variable expansion in production instead of committing the credentials to the configuration file directly.

Verbose logging for debug

The PostgreSQL destination can be run in debug mode.

Note: This will use pgx (opens in a new tab) built-in logging and might output data/sensitive information to logs so make sure to not use it in production but only for debugging.

kind: destination
spec:
  name: postgresql
  path: cloudquery/postgresql
  version: "v4.1.0"
  spec:
    connection_string: ${PG_CONNECTION_STRING}
    pgx_log_level: debug # Available: error, warn, info, debug, trace. Default: "error"