Skip to Content
ReferenceStoragePostgreSQL Storage

PostgreSQL Storage

The PostgreSQL storage implementation provides a production-ready storage solution using PostgreSQL databases.

Installation

npm install @mastra/pg@latest

Usage

import { PostgresStore } from "@mastra/pg"; const storage = new PostgresStore({ connectionString: process.env.DATABASE_URL, });

Parameters

connectionString:

string
PostgreSQL connection string (e.g., postgresql://user:pass@host:5432/dbname)

schemaName?:

string
The name of the schema you want the storage to use. Will use the default schema if not provided.

Constructor Examples

You can instantiate PostgresStore in the following ways:

import { PostgresStore } from '@mastra/pg'; // Using a connection string only const store1 = new PostgresStore({ connectionString: 'postgresql://user:password@localhost:5432/mydb', }); // Using a connection string with a custom schema name const store2 = new PostgresStore({ connectionString: 'postgresql://user:password@localhost:5432/mydb', schemaName: 'custom_schema', // optional }); // Using individual connection parameters const store4 = new PostgresStore({ host: 'localhost', port: 5432, database: 'mydb', user: 'user', password: 'password', }); // Individual parameters with schemaName const store5 = new PostgresStore({ host: 'localhost', port: 5432, database: 'mydb', user: 'user', password: 'password', schemaName: 'custom_schema', // optional });

Additional Notes

Schema Management

The storage implementation handles schema creation and updates automatically. It creates the following tables:

  • threads: Stores conversation threads
  • messages: Stores individual messages
  • metadata: Stores additional metadata for threads and messages