Skip to main content

PostgreSQL

PostgreSQL is the recommended production database for conversation persistence.

Installation

pip install "praisonai[tools]"

Docker Setup

docker run -d --name praison-postgres -p 5432:5432 \
    -e POSTGRES_PASSWORD=praison123 \
    -e POSTGRES_DB=praisonai \
    postgres:16

Usage

from praisonaiagents import Agent
from praisonai.db import PostgresDB

db = PostgresDB(
    host="localhost",
    port=5432,
    database="praisonai",
    user="postgres",
    password="praison123"
)

agent = Agent(
    name="Assistant",
    db=db,
    session_id="my-session"
)

agent.chat("Hello!")
db.close()

URL Format

from praisonai.db import PraisonDB

db = PraisonDB(database_url="postgresql://user:password@host:port/database")

Environment Variables

export PRAISON_CONVERSATION_URL="postgresql://postgres:praison123@localhost:5432/praisonai"

CLI

# Validate connection
praisonai persistence doctor \
    --conversation-url "postgresql://postgres:praison123@localhost/praisonai"

# Run with persistence
praisonai persistence run \
    --conversation-url "postgresql://postgres:praison123@localhost/praisonai" \
    --session-id "cli-session" \
    "Hello!"

Schema

Tables are auto-created:
  • praison_sessions - Session metadata
  • praison_messages - Conversation messages

Troubleshooting

Connection refused:
# Check if PostgreSQL is running
docker ps | grep postgres

# Check logs
docker logs praison-postgres
Authentication failed:
  • Verify username/password
  • Check pg_hba.conf for connection rules