Skip to main content

Database CLI Commands

The praisonai-ts CLI provides the db command for database adapter management and testing.

Commands Overview

CommandDescription
db connect <url>Connect to a database
db test [url]Test database operations
db adaptersList available adapters
db infoShow database information
db helpShow help

Connect to Database

Test database connectivity:
# Connect to SQLite
praisonai-ts db connect sqlite:./data.db

# Connect to PostgreSQL
praisonai-ts db connect postgres://user:pass@host:5432/db

# Connect to Redis
praisonai-ts db connect redis://localhost:6379

# JSON output
praisonai-ts db connect sqlite:./data.db --json
Example Output:
ℹ Connecting to: sqlite:./data.db
✓ Connected successfully (15ms)
  URL: sqlite:./data.db
JSON Output:
{
  "success": true,
  "data": {
    "url": "sqlite:./data.db",
    "connected": true,
    "latency_ms": 15
  }
}

Test Database Operations

Run a full database test:
# Test with in-memory SQLite (default)
praisonai-ts db test

# Test specific database
praisonai-ts db test sqlite:./test.db

# JSON output
praisonai-ts db test --json
Example Output:
ℹ Testing database: sqlite::memory:
✓ All tests passed (11ms)
  ✓ Initialize
  ✓ Create session
  ✓ Add message
  ✓ Get messages (1 retrieved)
  ✓ Delete session

List Adapters

View available database adapters:
praisonai-ts db adapters
praisonai-ts db adapters --json
Example Output:
Database Adapters

  ✓ sqlite          SQLite database
  ✓ postgres        PostgreSQL (Neon)
  ✓ redis           Redis (Upstash)
JSON Output:
{
  "success": true,
  "data": {
    "adapters": [
      { "name": "sqlite", "description": "SQLite database", "available": true },
      { "name": "redis", "description": "Redis (Upstash)", "available": true },
      { "name": "postgres", "description": "PostgreSQL (Neon)", "available": true }
    ]
  }
}

Database Info

Show database feature information:
praisonai-ts db info

Supported Database URLs

DatabaseURL Format
SQLitesqlite:./data.db or sqlite::memory:
PostgreSQLpostgres://user:pass@host:5432/db
Redisredis://host:port or rediss://...

SDK Usage

For programmatic database usage:
import { db, createSQLiteAdapter, createUpstashRedis, createNeonPostgres } from 'praisonai';

// Simple URL-based factory
const adapter = db("sqlite:./data.db");
await adapter.connect();

// Or specific adapters
const sqlite = createSQLiteAdapter({ filename: './data.db' });
const redis = createUpstashRedis({
  url: process.env.UPSTASH_REDIS_URL,
  token: process.env.UPSTASH_REDIS_TOKEN
});
const pg = createNeonPostgres({
  connectionString: process.env.DATABASE_URL
});
For more details, see the Database SDK documentation.