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 threadsmessages
: Stores individual messagesmetadata
: Stores additional metadata for threads and messages