# Schema Setup
For a schema to be soft-deletable, it needs a `deleted_at` field.
You can use the schema helper to include `deleted_at` and `deletion_reason`
fields.
## Example
```elixir
use Lazarus.Schema
schema "posts" do
soft_deletes()
end
```
## Options
You can configure the following :
- `include_reason` - determines whether or not to include `deletion_reason`
field. Set to `true` by default
- `deleted_at_type` - determines the type of `deleted_at` field. Set to
`:utc_datetime_usec` by default
Supported options:
- `include_reason` - `true`, `false`
- `deleted_at_type` - `:utc_datetime`, `:utc_datetime_usec`, `:naive_datetime`,
`:naive_datetime_usec`
### Per-call options
```elixir
soft_deletes([
include_reason: false,
deleted_at_type: :utc_datetime
])
```
### Module options
```elixir
@soft_deletes_opts [
include_reason: false,
deleted_at_type: :utc_datetime
]
```
## Set up migrations
Make sure your migrations and schema match. Learn more from
[Migration Setup](migration-setup.md) guide.