TiDB Serverless๋ MySQL๊ณผ ํธํ๋๋ฏ๋ก MySQL ์ฐ๊ฒฐ ๊ฐ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
Drizzle <> TiDB Serverless
This guide assumes familiarity with:
- Drizzle์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ธฐ์ด
- TiDB ๋ฐ์ดํฐ๋ฒ ์ด์ค - ์น์ฌ์ดํธ
- TiDB HTTP ๋๋ผ์ด๋ฒ - ์น์ฌ์ดํธ
- Drizzle MySQL ๋๋ผ์ด๋ฒ - ๋ฌธ์
**๊ณต์ ์น์ฌ์ดํธ**์ ๋ฐ๋ฅด๋ฉด, TiDB Serverless๋ ์๊ฐ์ ์ธ ํด๋ฌ์คํฐ ํ๋ก๋น์ ๋๊ณผ ์ฌ์ฉ๋ ๊ธฐ๋ฐ ๊ฐ๊ฒฉ ์ฑ ์ ์ ์ ๊ณตํ๋ ์์ ๊ด๋ฆฌํ ์์จ DBaaS์ ๋๋ค.
TiDB Serverless๋ ์ฃ์ง ํ๊ฒฝ์ ์ํ HTTP ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ drizzle-orm/tidb-serverless ํจํค์ง๋ฅผ ํตํด Drizzle ORM์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์๋ฉ๋๋ค.
1๋จ๊ณ - ํจํค์ง ์ค์น
npm
yarn
pnpm
bun
npm i drizzle-orm @tidbcloud/serverless
npm i -D drizzle-kit
2๋จ๊ณ - ๋๋ผ์ด๋ฒ ์ด๊ธฐํ ๋ฐ ์ฟผ๋ฆฌ ์คํ
import { drizzle } from 'drizzle-orm/tidb-serverless';
const db = drizzle({ connection: { url: process.env.TIDB_URL }});
const response = await db.select().from(...)๊ธฐ์กด ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ณตํด์ผ ํ๋ ๊ฒฝ์ฐ:
import { connect } from '@tidbcloud/serverless';
import { drizzle } from 'drizzle-orm/tidb-serverless';
const client = connect({ url: process.env.TIDB_URL });
const db = drizzle({ client });