Skip to content

Commit 6db092a

Browse files
committed
Replacing all interlinks to Query D1 chapter, to the new structure.
1 parent 1b1583a commit 6db092a

File tree

23 files changed

+51
-53
lines changed

23 files changed

+51
-53
lines changed

src/content/changelogs/d1.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ entries:
1919
- publish_date: "2024-07-26"
2020
title: Fixed bug in TypeScript typings for run() API
2121
description: |-
22-
The `run()` method as part of the [D1 Client API](/d1/build-with-d1/d1-client-api/) had an incorrect (outdated) type definition, which has now been addressed as of [`@cloudflare/workers-types`](https://www.npmjs.com/package/@cloudflare/workers-types) version `4.20240725.0`.
22+
The `run()` method as part of the [D1 Client API](/d1/worker-api/) had an incorrect (outdated) type definition, which has now been addressed as of [`@cloudflare/workers-types`](https://www.npmjs.com/package/@cloudflare/workers-types) version `4.20240725.0`.
2323
2424
The correct type definition is `stmt.run<T>(): D1Result`, as `run()` returns the result rows of the query. The previously _incorrect_ type definition was `stmt.run(): D1Response`, which only returns query metadata and no results.
2525
@@ -28,7 +28,7 @@ entries:
2828
description: |-
2929
Previously, D1's [HTTP API](/api/operations/cloudflare-d1-query-database) returned a HTTP `500 Internal Server` error for queries that came in while a D1 database was overloaded. These requests now correctly return a `HTTP 429 Too Many Requests` error.
3030
31-
D1's [Workers API](/d1/build-with-d1/d1-client-api/) is unaffected by this change.
31+
D1's [Workers API](/d1/worker-api/) is unaffected by this change.
3232
3333
- publish_date: "2024-04-30"
3434
title: D1 alpha databases will stop accepting live SQL queries on August 15, 2024
@@ -42,7 +42,7 @@ entries:
4242
description: |-
4343
Previously, D1's [HTTP API](/api/operations/cloudflare-d1-query-database) returned a HTTP `500 Internal Server` error for an invalid query. An invalid SQL query now correctly returns a `HTTP 400 Bad Request` error.
4444
45-
D1's [Workers API](/d1/build-with-d1/d1-client-api/) is unaffected by this change.
45+
D1's [Workers API](/d1/worker-api/) is unaffected by this change.
4646
4747
- publish_date: "2024-04-05"
4848
title: D1 alpha databases are deprecated
@@ -81,24 +81,24 @@ entries:
8181
- publish_date: "2024-02-16"
8282
title: API changes to `run()`
8383
description: |-
84-
A previous change (made on 2024-02-13) to the `run()` [query statement method](/d1/build-with-d1/d1-client-api/#await-stmtrun) has been reverted.
84+
A previous change (made on 2024-02-13) to the `run()` [query statement method](/d1/worker-api/prepared-statements/#run) has been reverted.
8585
86-
`run()` now returns a `D1Result`, including the result rows, matching its original behaviour prior to the change on 2024-02-13.
86+
`run()` now returns a `D1Result`, including the result rows, matching its original behavior prior to the change on 2024-02-13.
8787
88-
Future change to `run()` to return a [`D1ExecResult`](/d1/build-with-d1/d1-client-api/#return-object), as originally intended and documented, will be gated behind a [compatibility date](/workers/configuration/compatibility-dates/) as to avoid breaking existing Workers relying on the way `run()` currently works.
88+
Future change to `run()` to return a [`D1ExecResult`](/d1/worker-api/return-object/#d1execresult), as originally intended and documented, will be gated behind a [compatibility date](/workers/configuration/compatibility-dates/) as to avoid breaking existing Workers relying on the way `run()` currently works.
8989
9090
- publish_date: "2024-02-13"
9191
title: API changes to `raw()`, `all()` and `run()`
9292
description: |-
93-
D1's `raw()`, `all()` and `run()` [query statement methods](/d1/build-with-d1/d1-client-api/#query-statement-methods) have been updated to reflect their intended behaviour and improve compatibility with ORM libraries.
93+
D1's `raw()`, `all()` and `run()` [query statement methods](/d1/worker-api/prepared-statements/) have been updated to reflect their intended behavior and improve compatibility with ORM libraries.
9494
9595
`raw()` now correctly returns results as an array of arrays, allowing the correct handling of duplicate column names (such as when joining tables), as compared to `all()`, which is unchanged and returns an array of objects. To include an array of column names in the results when using `raw()`, use `raw({columnNames: true})`.
9696
97-
`run()` no longer incorrectly returns a `D1Result` and instead returns a [`D1ExecResult`](/d1/build-with-d1/d1-client-api/#return-object) as originally intended and documented.
97+
`run()` no longer incorrectly returns a `D1Result` and instead returns a [`D1ExecResult`](/d1/worker-api/return-object/#d1execresult) as originally intended and documented.
9898
9999
This may be a breaking change for some applications that expected `raw()` to return an array of objects.
100100
101-
Refer to [D1 client API](/d1/build-with-d1/d1-client-api/) to review D1's query methods, return types and TypeScript support in detail.
101+
Refer to [D1 client API](/d1/worker-api/) to review D1's query methods, return types and TypeScript support in detail.
102102
103103
- publish_date: "2024-01-18"
104104
title: Support for LIMIT on UPDATE and DELETE statements
@@ -140,7 +140,7 @@ entries:
140140
description: |-
141141
D1 now returns a count of `rows_written` and `rows_read` for every query executed, allowing you to assess the cost of query for both [pricing](/d1/platform/pricing/) and [index optimization](/d1/build-with-d1/use-indexes/) purposes.
142142
143-
The `meta` object returned in [D1's Client API](/d1/build-with-d1/d1-client-api/) contains a total count of the rows read (`rows_read`) and rows written (`rows_written`) by that query. For example, a query that performs a full table scan (for example, `SELECT * FROM users`) from a table with 5000 rows would return a `rows_read` value of `5000`:
143+
The `meta` object returned in [D1's Client API](/d1/worker-api/return-object/#d1result) contains a total count of the rows read (`rows_read`) and rows written (`rows_written`) by that query. For example, a query that performs a full table scan (for example, `SELECT * FROM users`) from a table with 5000 rows would return a `rows_read` value of `5000`:
144144
```json
145145
"meta": {
146146
"duration": 0.20472300052642825,
@@ -200,7 +200,7 @@ entries:
200200
- publish_date: "2023-06-12"
201201
title: Deprecating Error.cause
202202
description: |-
203-
As of [`wrangler v3.1.1`](https://github.com/cloudflare/workers-sdk/releases/tag/wrangler%403.1.1) the [D1 client API](/d1/build-with-d1/d1-client-api/) now returns [detailed error messages](/d1/build-with-d1/d1-client-api/#errors) within the top-level `Error.message` property, and no longer requires developers to inspect the `Error.cause.message` property.
203+
As of [`wrangler v3.1.1`](https://github.com/cloudflare/workers-sdk/releases/tag/wrangler%403.1.1) the [D1 client API](/d1/worker-api/) now returns [detailed error messages](/d1/observability/debug-d1/) within the top-level `Error.message` property, and no longer requires developers to inspect the `Error.cause.message` property.
204204
205205
To facilitate a transition from the previous `Error.cause` behaviour, detailed error messages will continue to be populated within `Error.cause` as well as the top-level `Error` object until approximately July 14th, 2023. Future versions of both `wrangler` and the D1 client API will no longer populate `Error.cause` after this date.
206206
- publish_date: "2023-05-19"

src/content/docs/d1/build-with-d1/foreign-keys.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ By default, D1 enforces that foreign key constraints are valid within all querie
1616

1717
## Defer foreign key constraints
1818

19-
When running a [query](/d1/build-with-d1/d1-client-api/), [migration](/d1/reference/migrations/) or [importing data](/d1/build-with-d1/import-export-data/) against a D1 database, there may be situations in which you need to disable foreign key validation during table creation or changes to your schema.
19+
When running a [query](/d1/worker-api/), [migration](/d1/reference/migrations/) or [importing data](/d1/build-with-d1/import-export-data/) against a D1 database, there may be situations in which you need to disable foreign key validation during table creation or changes to your schema.
2020

2121
D1's foreign key enforcement is equivalent to SQLite's `PRAGMA foreign_keys = on` directive. Because D1 runs every query inside an implicit transaction, user queries cannot change this during a query or migration.
2222

@@ -87,7 +87,7 @@ There are five actions you can set when defining the `ON UPDATE` and/or `ON DELE
8787

8888
:::caution[CASCADE usage]
8989

90-
Although `CASCADE` can be the desired behavior in some cases, deleting child rows across tables can have undesirable effects and/or result in unintended side effects for your users.
90+
Although `CASCADE` can be the desired behavior in some cases, deleting child rows across tables can have undesirable effects and/or result in unintended side effects for your users.
9191
:::
9292

9393
In the following example, deleting a user from the `users` table will delete all related rows in the `scores` table as you have defined `ON DELETE CASCADE`. Delete all related rows in the `scores` table if you do not want to retain the scores for any users you have deleted entirely. This might mean that *other* users can no longer look up or refer to scores that were still valid.
@@ -110,5 +110,5 @@ CREATE TABLE scores (
110110
## Next Steps
111111

112112
* Read the SQLite [`FOREIGN KEY`](https://www.sqlite.org/foreignkeys.html) documentation.
113-
* Learn how to [use the D1 client API](/d1/build-with-d1/d1-client-api/) from within a Worker.
113+
* Learn how to [use the D1 Workers Binding API](/d1/worker-api/) from within a Worker.
114114
* Understand how [database migrations work](/d1/reference/migrations/) with D1.

src/content/docs/d1/build-with-d1/import-export-data.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ The `_cf_KV` table is a reserved table used by D1's underlying storage system. I
6969

7070
:::
7171

72-
From here, you can now query our new table from our Worker [using the D1 client API](/d1/build-with-d1/d1-client-api/).
72+
From here, you can now query our new table from our Worker [using the D1 Workers Binding API](/d1/worker-api/).
7373

7474
:::caution[Known limitations]
7575

@@ -201,5 +201,5 @@ VALUES
201201
## Next Steps
202202

203203
- Read the SQLite [`CREATE TABLE`](https://www.sqlite.org/lang_createtable.html) documentation.
204-
- Learn how to [use the D1 client API](/d1/build-with-d1/d1-client-api/) from within a Worker.
204+
- Learn how to [use the D1 Workers Binding API](/d1/worker-api/) from within a Worker.
205205
- Understand how [database migrations work](/d1/reference/migrations/) with D1.

src/content/docs/d1/build-with-d1/query-json.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ This allows you to more precisely query over data and reduce the result set your
1919

2020
## Types
2121

22-
JSON data is stored as a `TEXT` column in D1. JSON types follow the same [type conversion rules](/d1/build-with-d1/d1-client-api/#type-conversion) as D1 in general, including:
22+
JSON data is stored as a `TEXT` column in D1. JSON types follow the same [type conversion rules](/d1/worker-api/#type-conversion) as D1 in general, including:
2323

2424
* A JSON null is treated as a D1 `NULL`.
2525
* A JSON number is treated as an `INTEGER` or `REAL`.
@@ -184,7 +184,7 @@ To replace an existing value, use `json_replace()`, which will overwrite an exis
184184
Use `json_each` to expand an array into multiple rows. This can be useful when composing a `WHERE column IN (?)` query over several values. For example, if you wanted to update a list of users by their integer `id`, use `json_each` to return a table with each value as a column called `value`:
185185

186186
```sql
187-
UPDATE users
187+
UPDATE users
188188
SET last_audited = '2023-05-16T11:24:08+00:00'
189189
WHERE id IN (SELECT value FROM json_each('[183183, 13913, 94944]'))
190190
```
@@ -208,7 +208,7 @@ key|value|type|id|fullkey|path
208208
2|94944|integer|3|$[2]|$
209209
```
210210

211-
You can use `json_each` with D1's [client API](/d1/build-with-d1/d1-client-api/) in a Worker by creating a statement and using `JSON.stringify` to pass an array as a [bound parameter](/d1/build-with-d1/d1-client-api/#parameter-binding):
211+
You can use `json_each` with [D1 Workers Binding API](/d1/worker-api/) in a Worker by creating a statement and using `JSON.stringify` to pass an array as a [bound parameter](/d1/worker-api/d1-database/#guidance):
212212

213213
```ts
214214
const stmt = context.env.DB

src/content/docs/d1/examples/d1-and-hono.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Hono is a fast web framework for building API-first applications, and it include
1919
When using Workers:
2020

2121
* Ensure you have configured [`wrangler.toml`](/d1/get-started/#3-bind-your-worker-to-your-d1-database) to bind your D1 database to your Worker.
22-
* You can access your D1 databases via Hono's [`Context`](https://hono.dev/api/context) parameter: [bindings](https://hono.dev/getting-started/cloudflare-workers#bindings) are exposed on `context.env`. If you configured a [binding](/pages/functions/bindings/#d1-databases) named `DB`, then you would access D1's [client API](/d1/build-with-d1/d1-client-api/#query-statement-methods) methods via `c.env.DB`.
22+
* You can access your D1 databases via Hono's [`Context`](https://hono.dev/api/context) parameter: [bindings](https://hono.dev/getting-started/cloudflare-workers#bindings) are exposed on `context.env`. If you configured a [binding](/pages/functions/bindings/#d1-databases) named `DB`, then you would access [D1 Workers Binding API](/d1/worker-api/prepared-statements/) methods via `c.env.DB`.
2323
* Refer to the Hono documentation for [Cloudflare Workers](https://hono.dev/getting-started/cloudflare-workers).
2424

2525
If you are using [Pages Functions](/pages/functions/):

src/content/docs/d1/examples/d1-and-remix.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ To set up a new Remix site on Cloudflare Pages that can query D1:
2525
The following example shows you how to define a Remix [`loader`](https://remix.run/docs/en/main/route/loader) that has a binding to a D1 database.
2626

2727
* Bindings are passed through on the `context.env` parameter passed to a `LoaderFunction`.
28-
* If you configured a [binding](/pages/functions/bindings/#d1-databases) named `DB`, then you would access D1's [client API](/d1/build-with-d1/d1-client-api/#query-statement-methods) methods via `context.env.DB`.
28+
* If you configured a [binding](/pages/functions/bindings/#d1-databases) named `DB`, then you would access [D1 Workers Binding API](/d1/worker-api/prepared-statements/) methods via `context.env.DB`.
2929

3030
<Tabs> <TabItem label="TypeScript" icon="seti:typescript">
3131

src/content/docs/d1/examples/query-d1-from-python-workers.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,5 +120,5 @@ If you receive an error deploying:
120120
## Next steps
121121

122122
- Refer to [Workers Python documentation](/workers/languages/python/) to learn more about how to use Python in Workers.
123-
- Review the [D1 client API](/d1/build-with-d1/d1-client-api/) and how to query D1 databases.
123+
- Review the [D1 Workers Binding API](/d1/worker-api/) and how to query D1 databases.
124124
- Learn [how to import data](/d1/build-with-d1/import-export-data/) to your D1 database.

src/content/docs/d1/get-started.mdx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,14 +187,12 @@ You create bindings by updating your `wrangler.toml` file.
187187

188188
- The value (string) you set for `binding` is the **binding name**, and is used to reference this database in your Worker. In this tutorial, name your binding `DB`.
189189
- The binding name must be [a valid JavaScript variable name](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#variables). For example, `binding = "MY_DB"` or `binding = "productionDB"` would both be valid names for the binding.
190-
- Your binding is available in your Worker at `env.<BINDING_NAME>` and the D1 [client API](/d1/build-with-d1/d1-client-api/) is exposed on this binding.
190+
- Your binding is available in your Worker at `env.<BINDING_NAME>` and the D1 [Workers Binding API](/d1/worker-api/) is exposed on this binding.
191191

192192
</Steps>
193193

194194
:::note
195-
196-
When you execute the `wrangler d1 create` command, the client API package (which implements the D1 API and database class) is automatically installed. For more information on the D1 Client API, refer to [D1 Client API](/d1/build-with-d1/d1-client-api/).
197-
195+
When you execute the `wrangler d1 create` command, the client API package (which implements the D1 API and database class) is automatically installed. For more information on the D1 Workers Binding API, refer to [Workers Binding API](/d1/worker-api/).
198196
:::
199197

200198
You can also bind your D1 database to a [Pages Function](/pages/functions/). For more information, refer to [Functions Bindings for D1](/pages/functions/bindings/#d1-databases).
@@ -336,7 +334,7 @@ After you have set up your database, run an SQL query from within your Worker.
336334
In the code above, you:
337335

338336
1. Define a binding to your D1 database in your TypeScript code. This binding matches the `binding` value you set in `wrangler.toml` under `[[d1_databases]]`.
339-
2. Query your database using `env.DB.prepare` to issue a [prepared query](/d1/build-with-d1/d1-client-api/) with a placeholder (the `?` in the query).
337+
2. Query your database using `env.DB.prepare` to issue a [prepared query](/d1/worker-api/d1-database/#prepare) with a placeholder (the `?` in the query).
340338
3. Call `bind()` to safely and securely bind a value to that placeholder. In a real application, you would allow a user to define the `CompanyName` they want to list results for. Using `bind()` prevents users from executing arbitrary SQL (known as "SQL injection") against your application and deleting or otherwise modifying your database.
341339
4. Execute the query by calling `all()` to return all rows (or none, if the query returns none).
342340
5. Return your query results, if any, in JSON format with `Response.json(results)`.

src/content/docs/d1/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Create new serverless SQL databases to query from your Workers and Pages project
2525

2626
D1 is Cloudflare’s native serverless database. D1 allows you to build applications that handle large amounts of users at no extra cost. With D1, you can restore your database to any minute within the last 30 days.
2727

28-
Create your first D1 database by [following the Get started guide](/d1/get-started/), learn how to [import data into a database](/d1/build-with-d1/import-export-data/), and how to [interact with your database](/d1/build-with-d1/d1-client-api/) directly from [Workers](/workers/) or [Pages](/pages/functions/bindings/#d1-databases).
28+
Create your first D1 database by [following the Get started guide](/d1/get-started/), learn how to [import data into a database](/d1/build-with-d1/import-export-data/), and how to [interact with your database](/d1/worker-api/) directly from [Workers](/workers/) or [Pages](/pages/functions/bindings/#d1-databases).
2929

3030
***
3131

@@ -38,7 +38,7 @@ Create your first D1 database, establish a schema, import data and query D1 dire
3838

3939
</Feature>
4040

41-
<Feature header="SQLite" href="/d1/build-with-d1/d1-client-api/" cta="Execute SQL queries">
41+
<Feature header="SQLite" href="/d1/sql-api/sql-statements/" cta="Execute SQL queries">
4242

4343
Execute SQL with SQLite's SQL compatibility and D1 Client API.
4444

src/content/docs/d1/observability/metrics-analytics.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Metrics can be queried (and are retained) for the past 31 days.
2727

2828
### Row counts
2929

30-
D1 returns the number of rows read, rows written (or both) in response to each individual query via [the client API](/d1/build-with-d1/d1-client-api/#return-object).
30+
D1 returns the number of rows read, rows written (or both) in response to each individual query via [the Workers Binding API](/d1/worker-api/return-object/).
3131

3232
Row counts are a precise count of how many rows were read (scanned) or written by that query.
3333
Inspect row counts to understand the performance and cost of a given query, including whether you can reduce the rows read [using indexes](/d1/build-with-d1/use-indexes/). Use query counts to understand the total volume of traffic against your databases and to discern which databases are actively in-use.
@@ -142,7 +142,7 @@ query {
142142

143143
D1 provides metrics that let you understand and debug query performance. You can access these via GraphQL's `d1QueriesAdaptiveGroups` or `wrangler d1 insights` command.
144144

145-
D1 captures your query strings to make it easier to analyze metrics across query executions. [Bound parameters](/d1/build-with-d1/d1-client-api/#parameter-binding) are not captured to remove any sensitive information.
145+
D1 captures your query strings to make it easier to analyze metrics across query executions. [Bound parameters](/d1/worker-api/prepared-statements/#guidance) are not captured to remove any sensitive information.
146146

147147
:::note
148148

0 commit comments

Comments
 (0)