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

# Databases | Python Fluent API | Collate

> Create, retrieve, update, delete, and search database entities using the Collate Python Fluent API.

# Databases

The `Databases` class provides CRUD operations for database metadata.

**FQN format:** `service_name.database_name`

## Import

```python theme={null}
from metadata.sdk import configure, Databases
from metadata.generated.schema.api.data.createDatabase import CreateDatabaseRequest

configure(host="https://your-instance.getcollate.io/api", jwt_token="your-token")
```

## Create

```python theme={null}
database = Databases.create(
    CreateDatabaseRequest(
        name="analytics",
        service={"id": "service-uuid", "type": "databaseService", "name": "my_postgres"},
        description="Analytics data warehouse",
    )
)
print(database.fullyQualifiedName)  # "my_postgres.analytics"
```

## Retrieve

```python theme={null}
# By ID
database = Databases.retrieve("database-uuid")

# By FQN
database = Databases.retrieve_by_name("my_postgres.analytics")

# With fields
database = Databases.retrieve_by_name(
    "my_postgres.analytics",
    fields=["owners", "tags", "domain"],
)
```

## List

```python theme={null}
# Single page
page = Databases.list(limit=50)

# All databases
all_dbs = Databases.list_all()
print(f"Total: {len(all_dbs)}")

# Filter by service
dbs = Databases.list_all(filters={"service": "my_postgres"})
```

## Update

```python theme={null}
db = Databases.retrieve_by_name("my_postgres.analytics")
db.description = "Analytics warehouse — updated"
Databases.update(db)
```

## Delete

```python theme={null}
Databases.delete("database-uuid")
Databases.delete("database-uuid", recursive=True, hard_delete=True)
```

## Search

```python theme={null}
results = Databases.search("analytics")
for db in results:
    print(db.fullyQualifiedName)
```

## CSV Export / Import

```python theme={null}
csv_content = Databases.export_csv("my_postgres").execute()
Databases.import_csv("my_postgres").with_data(csv_content).execute()
```

## Version History

```python theme={null}
versions = Databases.get_versions("database-uuid")
v = Databases.get_specific_version("database-uuid", "0.2")
```
