# `Electric.Schema`
[🔗](https://github.com/electric-sql/electric/tree/%40core/sync-service%401.6.2/packages/sync-service/lib/electric/schema.ex#L1)

# `column_name`

```elixir
@type column_name() :: String.t()
```

# `schema`

```elixir
@type schema() :: %{
  :type =&gt; type_name(),
  optional(:dims) =&gt; non_neg_integer(),
  optional(:pk_index) =&gt; non_neg_integer(),
  optional(:max_length) =&gt; String.t(),
  optional(:length) =&gt; String.t(),
  optional(:precision) =&gt; String.t(),
  optional(:scale) =&gt; String.t(),
  optional(:fields) =&gt; String.t(),
  optional(:type_mod) =&gt; integer()
}
```

# `type_name`

```elixir
@type type_name() :: String.t()
```

# `from_column_info`

```elixir
@spec from_column_info(
  [Electric.Postgres.Inspector.column_info()],
  [String.t(), ...] | nil
) :: %{
  required(column_name()) =&gt; schema()
}
```

Convert column information into a schema map

---

*Consult [api-reference.md](api-reference.md) for complete listing*
