mirror of
https://github.com/supabase/supabase.git
synced 2026-10-08 19:05:06 +03:00
* recreated connecting-to-postgres * adding GUI quickstart section with DBeaver * moved psql and pgadmin docs to GUI quickstart * added Prisma installation docs. Moved postgres.js and Drizzle into own section * added connection management docs * moved supavisor troubleshooting guide into troubleshooting section. Probably should not merge without adding more guides * updated IPv4 Add ons docs * removed typo * Update apps/docs/content/guides/platform/ipv4-address.mdx Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * Update apps/docs/content/guides/platform/ipv4-address.mdx Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * Update apps/docs/content/guides/database/supavisor.mdx Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * Update apps/docs/content/guides/database/prisma.mdx Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * Update apps/docs/content/guides/database/connection-management.mdx Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * Update apps/docs/content/guides/database/connection-management.mdx Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * Update apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * removed repetition in connection-management | added photos * Update apps/docs/content/guides/database/connecting-to-postgres.mdx Co-authored-by: Stas <sts@abc3.dev> * Update apps/docs/content/guides/platform/ipv4-address.mdx Co-authored-by: Stas <sts@abc3.dev> * Update apps/docs/content/guides/database/connection-management.mdx Co-authored-by: Stas <sts@abc3.dev> * Update apps/docs/content/guides/database/connecting-to-postgres.mdx Co-authored-by: Stas <sts@abc3.dev> * Update apps/docs/content/guides/platform/ipv4-address.mdx Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * Update apps/docs/content/guides/database/connecting-to-postgres.mdx Co-authored-by: Stas <sts@abc3.dev> * updated proxy suggestions * added redirects * added images to connection-management guide * added unique ids to titles in prisma-troubleshooting section * added images to connection guide * added new images to prisma guide * reformatted admonition --------- Co-authored-by: Brian Brennglass <brian@Brians-MacBook-Pro.local> Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> Co-authored-by: Stas <sts@abc3.dev>
93 lines
2.4 KiB
Plaintext
93 lines
2.4 KiB
Plaintext
---
|
|
id: 'drizzle'
|
|
title: 'Drizzle'
|
|
description: 'Drizzle Quickstart'
|
|
breadcrumb: 'ORM Quickstarts'
|
|
hideToc: true
|
|
---
|
|
|
|
### Connecting with Drizzle
|
|
|
|
[Drizzle ORM](https://github.com/drizzle-team/drizzle-orm) is a TypeScript ORM for SQL databases designed with maximum type safety in mind. You can use their ORM to connect to your database.
|
|
|
|
<Admonition type="note">
|
|
|
|
If you plan on solely using Drizzle instead of the Supabase Data API (PostgREST), you can turn off the latter in the [API Settings](https://supabase.com/dashboard/project/_/settings/api).
|
|
|
|
</Admonition>
|
|
<StepHikeCompact>
|
|
|
|
<StepHikeCompact.Step step={1}>
|
|
|
|
<StepHikeCompact.Details title="Install">
|
|
|
|
Install Drizzle and related dependencies.
|
|
|
|
</StepHikeCompact.Details>
|
|
|
|
<StepHikeCompact.Code>
|
|
|
|
```shell
|
|
npm i drizzle-orm postgres
|
|
npm i -D drizzle-kit
|
|
```
|
|
|
|
</StepHikeCompact.Code>
|
|
|
|
</StepHikeCompact.Step>
|
|
|
|
<StepHikeCompact.Step step={2}>
|
|
|
|
<StepHikeCompact.Details title="Create your models">
|
|
|
|
Create a `schema.ts` file and define your models.
|
|
|
|
</StepHikeCompact.Details>
|
|
|
|
<StepHikeCompact.Code>
|
|
|
|
```ts schema.ts
|
|
import { pgTable, serial, text, varchar } from "drizzle-orm/pg-core";
|
|
|
|
export const users = pgTable('users', {
|
|
id: serial('id').primaryKey(),
|
|
fullName: text('full_name'),
|
|
phone: varchar('phone', { length: 256 }),
|
|
});
|
|
```
|
|
|
|
</StepHikeCompact.Code>
|
|
|
|
</StepHikeCompact.Step>
|
|
|
|
<StepHikeCompact.Step step={3}>
|
|
|
|
<StepHikeCompact.Details title="Connect">
|
|
|
|
Connect to your database using the Connection Pooler.
|
|
|
|
In your [`Database Settings`](https://supabase.com/dashboard/project/_/settings/database), make sure `Use connection pooler` is checked, then copy the URI and save it as the `DATABASE_URL` environment variable. Remember to replace the password placeholder with your actual database password.
|
|
|
|
</StepHikeCompact.Details>
|
|
|
|
<StepHikeCompact.Code>
|
|
|
|
```ts db.ts
|
|
import 'dotenv/config'
|
|
|
|
import { drizzle } from 'drizzle-orm/postgres-js'
|
|
import postgres from 'postgres'
|
|
|
|
const connectionString = process.env.DATABASE_URL
|
|
|
|
// Disable prefetch as it is not supported for "Transaction" pool mode
|
|
export const client = postgres(connectionString, { prepare: false })
|
|
export const db = drizzle(client);
|
|
```
|
|
|
|
</StepHikeCompact.Code>
|
|
|
|
</StepHikeCompact.Step>
|
|
|
|
</StepHikeCompact>
|