> ## Documentation Index
> Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Database CLI

> CLI commands for database operations in PraisonAI TypeScript

# Database CLI Commands

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

## Commands Overview

| Command            | Description               |
| ------------------ | ------------------------- |
| `db connect <url>` | Connect to a database     |
| `db test [url]`    | Test database operations  |
| `db adapters`      | List available adapters   |
| `db info`          | Show database information |
| `db help`          | Show help                 |

## Connect to Database

Test database connectivity:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# 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:**

```json theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
{
  "success": true,
  "data": {
    "url": "sqlite:./data.db",
    "connected": true,
    "latency_ms": 15
  }
}
```

## Test Database Operations

Run a full database test:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# 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:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts db adapters
praisonai-ts db adapters --json
```

**Example Output:**

```
Database Adapters

  ✓ sqlite          SQLite database
  ✓ postgres        PostgreSQL (Neon)
  ✓ redis           Redis (Upstash)
```

**JSON Output:**

```json theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
{
  "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:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts db info
```

## Supported Database URLs

| Database   | URL Format                              |
| ---------- | --------------------------------------- |
| SQLite     | `sqlite:./data.db` or `sqlite::memory:` |
| PostgreSQL | `postgres://user:pass@host:5432/db`     |
| Redis      | `redis://host:port` or `rediss://...`   |

## SDK Usage

For programmatic database usage:

```typescript theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
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](/docs/js/database).
