The PostgreSQL provider for Pulumi can be used to provision any of the resources available for PostgreSQL. The PostgreSQL provider must be configured with credentials to deploy and update resources in PostgreSQL.

See the full API documentation for complete details of the available PostgreSQL provider APIs.


The PostgreSQL provider supports several options for providing access to PostgreSQL credentials. See the PostgreSQL setup page for details.


const postgresql = require("@pulumi/postgresql")

const myDb = new postgresql.Database("my-database");
import * as postgresql from "@pulumi/postgresql";

const myDb = new postgresql.Database("my-database");
import pulumi_postgresql as postgresql

my_db = postgresql.Database("my-database")
import (
	postgresql ""

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myDb, err := postgresql.NewDatabase(ctx, "my-database", &postgresql.DatabaseArgs{})
		if err != nil {
			return err

		return nil
using System.Collections.Generic;
using System.Threading.Tasks;
using Pulumi;
using Pulumi.Postgresql;

class Program
    static Task Main() =>
        Deployment.Run(() => {
            mydatabase = new Database("my-database", new DatabaseArgs{});


The following packages are available in packager managers:

The PostgreSQL provider is open source and available in the pulumi/pulumi-postgresql repo.