1. Answers
  2. Create and Manage PostgreSQL Schemas with Pulumi

How do I create and manage schemas in a PostgreSQL database using Pulumi?

In this guide, we will create and manage schemas in a PostgreSQL database using Pulumi and TypeScript. We will define a PostgreSQL database and create a schema within it. This example demonstrates how to use infrastructure as code to manage database resources consistently and repeatably.

import * as pulumi from "@pulumi/pulumi";
import * as postgresql from "@pulumi/postgresql";

// Define the database configuration
const database = new postgresql.Database("mydatabase", {
    name: "mydatabase",
    owner: "mydbowner",
    lcCtype: "en_US.UTF-8",
    encoding: "UTF8",
    template: "template0",
    lcCollate: "en_US.UTF-8",
    isTemplate: false,
    tablespaceName: "pg_default",
    connectionLimit: -1,
    allowConnections: true,
});

// Create a schema within the PostgreSQL database
const schema = new postgresql.Schema("myschema", {
    name: "myschema",
    owner: "mydbowner",
    database: database.name,
    ifNotExists: true,
});

// Export the connection string for the database
export const connectionString = pulumi.interpolate`postgresql://${database.owner}@localhost:5432/${database.name}`;

Key Points:

  • Database Configuration: We define a PostgreSQL database with specific properties such as name, owner, encoding, and more.
  • Schema Creation: We create a schema within the defined PostgreSQL database.
  • Connection String Export: We export the connection string to connect to the PostgreSQL database.

Summary:

In this guide, we used Pulumi to create a PostgreSQL database and a schema within it. By defining these resources in code, we ensure that our database infrastructure is managed consistently and can be easily recreated or modified. This approach leverages the power of infrastructure as code to manage database resources efficiently.

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up