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

# Generator Overview

> How Seedling's auto-detection and generator system works.

# Generator Overview

Seedling automatically assigns a generator to every column based on its type, name, and constraints. You can override any column with custom generators via a YAML file.

## Auto-Detection

When you run `seedling generate` without overrides, Seedling inspects each column and selects a generator:

| Schema Signal               | Detected Generator         |
| --------------------------- | -------------------------- |
| `serial` / `bigserial` PK   | Sequence                   |
| FK column                   | FK pool lookup             |
| `varchar` / `text`          | Random string              |
| `varchar` named "email"     | `Email`                    |
| `varchar` named "phone"     | `Phone`                    |
| `varchar` named "url"       | `URL`                      |
| `boolean` / `tinyint(1)`    | `Bool`                     |
| `timestamptz` / `timestamp` | `Now` / `Timestamp`        |
| `date`                      | `DateGenerator`            |
| `numeric` / `decimal`       | `Numeric`                  |
| `float` / `double`          | `FloatRange`               |
| `uuid`                      | `UUID`                     |
| `json` / `jsonb`            | Random JSON                |
| `enum`                      | Random enum value          |
| `unique` column             | Unique constrained variant |

## Hint System

Column comments in the database schema can provide hints to Seedling:

```sql theme={null}
COMMENT ON COLUMN users.role IS 'generator:weighted_choice';
```

These hints are stored in the schema file and influence generator selection during auto-detection.

## Override System

For full control, provide a [generator overrides](/seedling/generators/overrides) YAML file to override specific columns.
