You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/docs/hyperdrive/configuration/connect-to-postgres.mdx
+13-7Lines changed: 13 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,18 +52,24 @@ Refer to the [Examples documentation](/hyperdrive/examples/) for step-by-step gu
52
52
53
53
Hyperdrive uses Workers [TCP socket support](/workers/runtime-apis/tcp-sockets/#connect) to support TCP connections to databases. The following table lists the supported database drivers and the minimum version that works with Hyperdrive:
54
54
55
-
| Driver | Documentation| Minimum Version Required | Notes |
| Postgres.js (**recommended**) |[Postgres.js documentation](https://github.com/porsager/postgres)|`[email protected]`| Supported in both Workers & Pages. |
58
-
| node-postgres - `pg`|[node-postgres - `pg` documentation](https://node-postgres.com/)|`[email protected]`|`8.11.4` introduced a bug with URL parsing and will not work. `8.11.5` fixes this. Requires `compatibility_flags = ["nodejs_compat"]` and `compatibility_date = "2024-09-23"` - refer to [Node.js compatibility](/workers/runtime-apis/nodejs). Requires wrangler `3.78.7` or later. |
|[rust-postgres](https://github.com/sfackler/rust-postgres)|[rust-postgres documentation](https://docs.rs/postgres/latest/postgres/)|`v0.19.8`| Use the [`query_typed`](https://docs.rs/postgres/latest/postgres/struct.Client.html#method.query_typed) method for best performance. |
55
+
| Driver | Documentation| Minimum Version Required | Notes|
| Postgres.js (**recommended**) |[Postgres.js documentation](https://github.com/porsager/postgres)|`[email protected]`| Supported in both Workers & Pages.|
58
+
| node-postgres - `pg`|[node-postgres - `pg` documentation](https://node-postgres.com/)|`[email protected]`|`8.11.4` introduced a bug with URL parsing and will not work. `8.11.5` fixes this. Requires `compatibility_flags = ["nodejs_compat"]` and `compatibility_date = "2024-09-23"` - refer to [Node.js compatibility](/workers/runtime-apis/nodejs). Requires wrangler `3.78.7` or later. |
|[rust-postgres](https://github.com/sfackler/rust-postgres)|[rust-postgres documentation](https://docs.rs/postgres/latest/postgres/)|`v0.19.8`| Use the [`query_typed`](https://docs.rs/postgres/latest/postgres/struct.Client.html#method.query_typed) method for best performance.|
62
62
63
63
^ _The marked libraries use `node-postgres` as a dependency._
64
64
65
65
Other drivers and ORMs not listed may also be supported: this list is not exhaustive.
66
66
67
+
### Database drivers and Node.js compatibility
68
+
69
+
[Node.js compatibility](/workers/runtime-apis/nodejs/) is required for database drivers, including Postgres.js, and needs to be configured for your Workers project.
70
+
71
+
<Renderfile="nodejs_compat"product="workers" />
72
+
67
73
## Supported TLS (SSL) modes
68
74
69
75
Hyperdrive supports the following [PostgreSQL TLS (SSL)](https://www.postgresql.org/docs/current/libpq-ssl.html) connection modes when connecting to your origin database:
Copy file name to clipboardExpand all lines: src/content/docs/hyperdrive/get-started.mdx
+3-15Lines changed: 3 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,23 +74,11 @@ This will create a new `hyperdrive-tutorial` directory. Your new `hyperdrive-tut
74
74
- A `"Hello World"`[Worker](/workers/get-started/guide/#3-write-code) at `src/index.ts`.
75
75
- A [`wrangler.toml`](/workers/wrangler/configuration/) configuration file. `wrangler.toml` is how your `hyperdrive-tutorial` Worker will connect to Hyperdrive.
76
76
77
-
:::note
78
-
79
-
Note that the `wrangler.toml` file contains the following option:
80
-
81
-
import { WranglerConfig } from"~/components";
82
-
83
-
<WranglerConfig>
77
+
### Enable Node.js compatibility
84
78
85
-
```toml title="wrangler.toml"
86
-
compatibility_flags = [ "nodejs_compat" ]
87
-
```
88
-
89
-
</WranglerConfig>
79
+
[Node.js compatibility](/workers/runtime-apis/nodejs/) is required for database drivers, including Postgres.js, and needs to be configured for your Workers project.
90
80
91
-
This enables the Node.js compatibility mode which is required for database drivers, including Postgres.js.
In this tutorial, you will learn how to create a Cloudflare Workers application and connect it to a PostgreSQL database using [TCP Sockets](/workers/runtime-apis/tcp-sockets/) and [Hyperdrive](/hyperdrive/). The Workers application you create in this tutorial will interact with a product database inside of PostgreSQL.
19
19
@@ -58,17 +58,9 @@ cd postgres-tutorial
58
58
59
59
### Enable Node.js compatibility
60
60
61
-
<Renderfile="nodejs-compat-howto" />
61
+
[Node.js compatibility](/workers/runtime-apis/nodejs/) is required for database drivers, including Postgres.js, and needs to be configured for your Workers project.
62
62
63
-
import { WranglerConfig } from"~/components";
64
-
65
-
<WranglerConfig>
66
-
67
-
```toml title="wrangler.toml"
68
-
compatibility_flags = ["nodejs_compat_v2"]
69
-
```
70
-
71
-
</WranglerConfig>
63
+
<Renderfile="nodejs_compat"product="workers" />
72
64
73
65
## 2. Add the PostgreSQL connection library
74
66
@@ -112,8 +104,6 @@ npx wrangler secret put DB_URL
112
104
113
105
Set your `DB_URL` secret locally in a `.dev.vars` file as documented in [Local Development with Secrets](/workers/configuration/secrets/).
114
106
115
-
116
-
117
107
<WranglerConfig>
118
108
119
109
```toml
@@ -126,8 +116,6 @@ DB_URL="<ENTER YOUR POSTGRESQL CONNECTION STRING>"
126
116
127
117
Configure each database parameter as an [environment variable](/workers/configuration/environment-variables/) via the [Cloudflare dashboard](/workers/configuration/environment-variables/#add-environment-variables-via-the-dashboard) or in your `wrangler.toml` file. Refer to an example of a`wrangler.toml` file configuration:
128
118
129
-
130
-
131
119
<WranglerConfig>
132
120
133
121
```toml
@@ -329,8 +317,6 @@ You can also use explicit parameters by following the [wrangler documentation fo
329
317
330
318
This command outputs the Hyperdrive configuration `id` that will be used for your Hyperdrive [binding](/workers/runtime-apis/bindings/). Set up your binding by specifying the `id` in the `wrangler.toml` file.
0 commit comments