Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[D1] Cleaning up Build with D1 #18321

Merged
merged 26 commits into from
Dec 11, 2024
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
fac3401
Moving Error section away from "Query D1".
Oxyjun Nov 21, 2024
1b1583a
Redirecting Query D1 to Workers Binding API section.
Oxyjun Nov 21, 2024
6db092a
Replacing all interlinks to Query D1 chapter, to the new structure.
Oxyjun Nov 21, 2024
0996b32
Update src/content/docs/d1/worker-api/prepared-statements.mdx
Oxyjun Nov 21, 2024
4dab631
Fixing grammar.
Oxyjun Nov 21, 2024
194a953
Moving Wrangler commands out of Reference. Reshuffling chapters.
Oxyjun Nov 22, 2024
a0dfc1c
Updating branch with master
Oxyjun Nov 22, 2024
0b2506c
Resolving merge conflict, adding global commands once at the bottom.
Oxyjun Nov 22, 2024
cd9e478
Moving "global commands" out of the partial.
Oxyjun Nov 22, 2024
52dfe8e
Introducing APIs in Query D1. Introducing Wrangler commands properly.
Oxyjun Nov 22, 2024
c6a77bb
Setting up redirects, fixing broken link.
Oxyjun Nov 22, 2024
cd6be4c
Adding missing `/`
Oxyjun Nov 22, 2024
425ec46
Fixing redirects.
Oxyjun Nov 25, 2024
8b38884
Resolving two conflicting redirects.
Oxyjun Nov 25, 2024
890c682
Fixing redirect
Oxyjun Nov 26, 2024
3f7bcc7
Merge commit '8464c5596d3875f159c1a99b1d006eaf9f86608b' into jun/d1/a…
Oxyjun Dec 5, 2024
5cc5506
Reordering API pages, moving Remote dev below Local dev.
Oxyjun Dec 5, 2024
ac438d2
Editing chapter contents to action feedback.
Oxyjun Dec 6, 2024
8ac8712
Renaming "Build with D1" to "Best practices".
Oxyjun Dec 6, 2024
d2e10d8
Merge commit '32aa062cc0062388d8f2643179f514bd004c2a79' into jun/d1/a…
Oxyjun Dec 9, 2024
8bf038d
Moving foreign keys and query json into SQL API.
Oxyjun Dec 9, 2024
baa60a6
Moving foreign keys and query json into sql api.
Oxyjun Dec 9, 2024
ec24c8d
Removing "D1" from REST and Wrangler sidebar.
Oxyjun Dec 9, 2024
05a130b
Introducing query JSON and foreign keys in Query databases chapter.
Oxyjun Dec 9, 2024
55a9385
Restructuring "Query database", changing the example of
Oxyjun Dec 9, 2024
66776f5
Editing Wrangler example. Restructuring to better explain how SQL fit…
Oxyjun Dec 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions public/_redirects
KianNH marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,9 @@
/constellation/ /workers-ai/ 301

# D1
/d1/d1-api/ /d1/rest-api/d1-api 301/
/d1/client-api/ /d1/build-with-d1/d1-client-api/ 301
/d1/build-with-d1/d1-client-api/ /d1/worker-api/ 301
/d1/learning/using-d1-from-pages/ /pages/functions/bindings/#d1-databases 301
/d1/learning/debug-d1/ /d1/observability/debug-d1/ 301
/d1/learning/using-indexes/ /d1/build-with-d1/use-indexes/ 301
Expand All @@ -279,6 +281,7 @@
/d1/reference/client-api/ /d1/build-with-d1/d1-client-api/ 301
/d1/reference/environments/ /d1/configuration/environments/ 301
/d1/reference/metrics-analytics/ /d1/observability/metrics-analytics/ 301
/d1/reference/wrangler-commands/ / /d1/rest-api/wrangler-commands/ 301
/d1/how-to/ /d1/build-with-d1/ 301
/d1/how-to/query-databases/ /d1/build-with-d1/d1-client-api/ 301
/d1/how-to/using-indexes/ /d1/build-with-d1/use-indexes/ 301
Expand All @@ -294,6 +297,7 @@
/d1/configuration/local-development/ /d1/build-with-d1/local-development/ 301
/d1/configuration/remote-development/ /d1/build-with-d1/remote-development/ 301
/d1/build-with-d1/import-data/ /d1/build-with-d1/import-export-data/ 301
/d1/build-with-d1/d1-client-api/ /d1/build-with-d1/query-d1/ 301
/d1/reference/database-commands/ /d1/reference/sql-statements/ 301
/d1/reference/sql-statements/ /d1/sql-api/sql-statements/ 301

Expand Down
22 changes: 11 additions & 11 deletions src/content/changelogs/d1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ entries:
- publish_date: "2024-07-26"
title: Fixed bug in TypeScript typings for run() API
description: |-
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`.
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`.

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.

Expand All @@ -28,7 +28,7 @@ entries:
description: |-
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.

D1's [Workers API](/d1/build-with-d1/d1-client-api/) is unaffected by this change.
D1's [Workers API](/d1/worker-api/) is unaffected by this change.

- publish_date: "2024-04-30"
title: D1 alpha databases will stop accepting live SQL queries on August 15, 2024
Expand All @@ -42,7 +42,7 @@ entries:
description: |-
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.

D1's [Workers API](/d1/build-with-d1/d1-client-api/) is unaffected by this change.
D1's [Workers API](/d1/worker-api/) is unaffected by this change.

- publish_date: "2024-04-05"
title: D1 alpha databases are deprecated
Expand Down Expand Up @@ -81,24 +81,24 @@ entries:
- publish_date: "2024-02-16"
title: API changes to `run()`
description: |-
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.
A previous change (made on 2024-02-13) to the `run()` [query statement method](/d1/worker-api/prepared-statements/#run) has been reverted.

`run()` now returns a `D1Result`, including the result rows, matching its original behaviour prior to the change on 2024-02-13.
`run()` now returns a `D1Result`, including the result rows, matching its original behavior prior to the change on 2024-02-13.

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.
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.

- publish_date: "2024-02-13"
title: API changes to `raw()`, `all()` and `run()`
description: |-
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.
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.

`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})`.

`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.
`run()` no longer incorrectly returns a `D1Result` and instead returns a [`D1ExecResult`](/d1/worker-api/return-object/#d1execresult) as originally intended and documented.

This may be a breaking change for some applications that expected `raw()` to return an array of objects.

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.
Refer to [D1 client API](/d1/worker-api/) to review D1's query methods, return types and TypeScript support in detail.

- publish_date: "2024-01-18"
title: Support for LIMIT on UPDATE and DELETE statements
Expand Down Expand Up @@ -140,7 +140,7 @@ entries:
description: |-
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.

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`:
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`:
```json
"meta": {
"duration": 0.20472300052642825,
Expand Down Expand Up @@ -200,7 +200,7 @@ entries:
- publish_date: "2023-06-12"
title: Deprecating Error.cause
description: |-
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.
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.

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.
- publish_date: "2023-05-19"
Expand Down
Loading
Loading