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