cognee/docs/ko/setup-configuration/relational-databases.md
HectorSin d5544ccec1 fix: rename docs/kr to docs/ko to follow ISO 639-1 standard
Signed-off-by: HectorSin <kkang15634@ajou.ac.kr>
2026-01-14 13:50:05 +09:00

4.5 KiB

Relational Databases

Configure relational databases for metadata and state storage in Cognee

Relational databases store metadata, document information, and system state in Cognee. They track documents, chunks, and provenance (where data came from and how it's linked).

**New to configuration?**

See the Setup Configuration Overview for the complete workflow:

install extras → create .env → choose providers → handle pruning.

Supported Providers

Cognee supports two relational database options:

  • SQLite — File-based database, works out of the box (default)
  • Postgres — Production-ready database for multi-process concurrency

Configuration

Set these environment variables in your `.env` file:
  • DB_PROVIDER — The database provider (sqlite, postgres)
  • DB_NAME — Database name
  • DB_HOST — Database host (Postgres only)
  • DB_PORT — Database port (Postgres only)
  • DB_USERNAME — Database username (Postgres only)
  • DB_PASSWORD — Database password (Postgres only)

Setup Guides

SQLite is file-based and requires no additional setup. It's perfect for local development and single-user scenarios.
```dotenv  theme={null}
DB_PROVIDER="sqlite"
DB_NAME="cognee_db"
```

**Installation**: SQLite is included by default with Cognee. No additional installation required.

**Data Location**: Data is stored under the Cognee system directory. You can override the root with `SYSTEM_ROOT_DIRECTORY` in your `.env` file.
Postgres is recommended for production environments, multi-process concurrency, or when you need external hosting.
```dotenv  theme={null}
DB_PROVIDER="postgres"
DB_NAME="cognee_db"
DB_HOST="127.0.0.1"            # use host.docker.internal when running inside Docker
DB_PORT="5432"
DB_USERNAME="cognee"
DB_PASSWORD="cognee"
```

**Installation**: Install the Postgres extras:

```bash  theme={null}
pip install "cognee[postgres]"
# or for binary version
pip install "cognee[postgres-binary]"
```

**Docker Setup**: Use the built-in Postgres service:

```bash  theme={null}
docker compose --profile postgres up -d
```

**Docker Networking**: When running Cognee in Docker and Postgres on your host, set:

```dotenv  theme={null}
DB_HOST="host.docker.internal"
```

Advanced Options

Use migration settings to extract data from a relational database and load it into the graph store.
MIGRATION_DB_PROVIDER="sqlite"   # or postgres
MIGRATION_DB_PATH="/path/to/migration/directory"
MIGRATION_DB_NAME="migration_database.sqlite"
# For Postgres migrations
# MIGRATION_DB_HOST=127.0.0.1
# MIGRATION_DB_PORT=5432
# MIGRATION_DB_USERNAME=cognee
# MIGRATION_DB_PASSWORD=cognee
Enable per-user dataset isolation for multi-tenant scenarios.
ENABLE_BACKEND_ACCESS_CONTROL="true"

This feature is available for both SQLite and Postgres.

Troubleshooting

**Postgres Connectivity**: Verify the database is listening on `DB_HOST:DB_PORT` and credentials are correct:
psql -h 127.0.0.1 -U cognee -d cognee_db

Docker Networking: Use host.docker.internal for host-to-container access on macOS/Windows.

SQLite Concurrency: SQLite has limited write concurrency; prefer Postgres for heavy multi-user workloads.

When to Use Each

  • SQLite: Local development, single-user applications, simple deployments
  • Postgres: Production environments, multi-user applications, external hosting, co-location with pgvector
Configure vector databases for embedding storage Set up graph databases for knowledge graphs Return to setup configuration overview

To find navigation and other pages in this documentation, fetch the llms.txt file at: https://docs.cognee.ai/llms.txt