---
title: "D1DatabaseOptions"
description: "The options [createD1Database](https://pitlane.tools/package/data-table-d1/function/createD1Database.md) accepts: `remix/data-table`'s `DatabaseOptions`, plus D1's statement observer and transaction mode."
url: "https://pitlane.tools/package/data-table-d1/interface/D1DatabaseOptions"
---

# D1DatabaseOptions

```ts
import type { D1DatabaseOptions } from "@pitlane/data-table-d1";
```

The options [createD1Database](https://pitlane.tools/package/data-table-d1/function/createD1Database.md) accepts: `remix/data-table`'s `DatabaseOptions`, plus D1's statement observer and transaction mode.

## Extends

- `DatabaseOptions`

## Properties

### now?

```ts
optional now?: () => unknown;
```

Clock function used for auto-managed timestamps.

#### Returns

`unknown`

#### Inherited from

```ts
DatabaseOptions.now
```

---

### onStatement?

```ts
optional onStatement?: D1StatementObserver;
```

Called after each statement, with the rows read, rows written, and duration D1 reported for it. See [D1StatementObserver](https://pitlane.tools/package/data-table-d1/type/D1StatementObserver.md).

---

### transactions?

```ts
optional transactions?: D1TransactionMode;
```

What `transaction()` does. Defaults to `throw`, because D1 has no transactions; `unsafe-nonatomic` accepts the call and gives up atomicity. See [D1TransactionMode](https://pitlane.tools/package/data-table-d1/type/D1TransactionMode.md).
