Back to Drizzle Orm

Drizzle TiDB Serverless

src/content/docs/connect-tidb.mdx

latest1.9 KB
Original Source

import Npm from '@mdx/Npm.astro'; import Callout from '@mdx/Callout.astro'; import Tabs from '@mdx/Tabs.astro'; import Tab from '@mdx/Tab.astro'; import AnchorCards from '@mdx/AnchorCards.astro'; import WhatsNextPostgres from "@mdx/WhatsNextPostgres.astro"; import Prerequisites from "@mdx/Prerequisites.astro"; import CodeTabs from "@mdx/CodeTabs.astro";

Drizzle <> TiDB Serverless

<Prerequisites> - Database [connection basics](/docs/connect-overview) with Drizzle - TiDB database - [website](https://docs.pingcap.com/) - TiDB HTTP Driver - [website](https://docs.pingcap.com/tidbcloud/serverless-driver) - Drizzle MySQL drivers - [docs](/docs/get-started-mysql) </Prerequisites>

According to the official website, TiDB Serverless is a fully-managed, autonomous DBaaS with split-second cluster provisioning and consumption-based pricing.

<Callout type="info" emoji="ℹ️"> TiDB Serverless is compatible with MySQL, so you can use [MySQL connection guide](/docs/get-started-mysql) to connect to it. </Callout>

TiDB Serverless provides an HTTP driver for edge environments. It is natively supported by Drizzle ORM via drizzle-orm/tidb-serverless package.

Step 1 - Install packages

<Npm> drizzle-orm @tidbcloud/serverless -D drizzle-kit </Npm>

Step 2 - Initialize the driver and make a query

typescript
import { drizzle } from 'drizzle-orm/tidb-serverless';

const db = drizzle({ connection: { url: process.env.TIDB_URL }});

const response = await db.select().from(...)

If you need to provide your existing driver:

typescript
import { connect } from '@tidbcloud/serverless';
import { drizzle } from 'drizzle-orm/tidb-serverless';

const client = connect({ url: process.env.TIDB_URL });
const db = drizzle({ client });

What's next?

<WhatsNextPostgres/>