Configure SQLite, PostgreSQL, and ClickHouse connections for data storage
Anysite CLI can load extracted data directly into databases. It supports SQLite (built-in), PostgreSQL, and ClickHouse (via optional extras). Connections are stored in ~/.anysite/connections.yaml and can be referenced by name across all CLI commands.
| Database | Extra Required | Use Case |
|---|---|---|
| SQLite | None (built-in) | Local development, single-user workflows, prototyping |
| PostgreSQL | pip install "anysite-cli[postgres]" |
Production, multi-user, large datasets |
| ClickHouse | pip install "anysite-cli[clickhouse]" |
Analytics, columnar storage, large-scale aggregations |
```bash
anysite db add mydb --type sqlite --database ./data/mydata.db
```
SQLite databases are created automatically if the file doesn't exist.
First install the PostgreSQL extra:
```bash
pip install "anysite-cli[postgres]"
```
Then add the connection:
```bash
anysite db add pg --type postgres \
--host localhost \
--port 5432 \
--database mydb \
--user app \
--password "$DB_PASSWORD"
```
Or reference an existing environment variable directly:
```bash
anysite db add pg --type postgres \
--host localhost \
--database mydb \
--user app \
--password-env PGPASS
```
Or use a connection URL from an environment variable:
```bash
anysite db add pg --url-env DATABASE_URL
```
First install the ClickHouse extra:
```bash
pip install "anysite-cli[clickhouse]"
```
Then add the connection:
```bash
anysite db add ch --type clickhouse \
--host localhost \
--port 8123 \
--database default \
--user default \
--password "$CH_PASSWORD"
```
Or with SSL (auto-enabled on port 8443):
```bash
anysite db add ch --type clickhouse \
--host ch.example.com \
--port 8443 \
--database analytics \
--user app \
--password-env CH_PASS \
--ssl
```
Mark a connection as read-only to prevent accidental writes (useful for production replicas):
```bash
anysite db add replica --type postgres \
--host replica.example.com \
--database mydb \
--user readonly_user \
--password-env REPLICA_PASS \
--read-only
```
Read-only connections block INSERT/UPDATE/DELETE operations. Discovery auto-detects read-only status for PostgreSQL replicas, SQLite files with restricted permissions, and ClickHouse `readonly` system setting.
Use --password-env to reference an environment variable instead of passing passwords directly. The CLI stores connection details in ~/.anysite/connections.yaml with passwords stored as env var references.
# List all connections
anysite db list
# Test a connection
anysite db test pg
# Remove a connection
anysite db remove pg
| Option | Description | Default |
|---|---|---|
--type |
sqlite |
Required |
--database |
Path to the SQLite database file | Required |
| Option | Description | Default |
|---|---|---|
--type |
postgres |
Required |
--host |
Database host | localhost |
--port |
Database port | 5432 |
--database |
Database name | Required |
--user |
Username | Required |
--password |
Password (prefer --password-env) |
— |
--password-env |
Environment variable name containing the password | — |
--url-env |
Environment variable containing the full connection URL | — |
--read-only |
Mark connection as read-only (blocks writes) | false |
| Option | Description | Default |
|---|---|---|
--type |
clickhouse |
Required |
--host |
Database host | localhost |
--port |
HTTP port | 8123 |
--database |
Database name | default |
--user |
Username | — |
--password |
Password (prefer --password-env) |
— |
--password-env |
Environment variable name containing the password | — |
--ssl |
Enable SSL (auto-enabled on port 8443) | false |
--read-only |
Mark connection as read-only (blocks writes) | false |
ClickHouse uses the HTTP protocol via clickhouse-connect. The default engine for auto-created tables is MergeTree().
Auto-discover database structure and browse saved catalogs
Insert, query, and sync data with your databases