Drizzle <> MySQL
MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํจ๊ป Drizzle์ ์ฌ์ฉํ๋ ค๋ฉด mysql2 ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค
**๊ณต์ ์น์ฌ์ดํธ **์ ๋ฐ๋ฅด๋ฉด,
mysql2๋ ์ฑ๋ฅ์ ์ค์ ์ ๋ Node.js์ฉ MySQL ํด๋ผ์ด์ธํธ์
๋๋ค.
Drizzle ORM์ drizzle-orm/mysql2 ํจํค์ง๋ฅผ ํตํด mysql2๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํฉ๋๋ค.
1๋จ๊ณ - ํจํค์ง ์ค์น
npm i drizzle-orm mysql2
npm i -D drizzle-kit
yarn add drizzle-orm mysql2
yarn add -D drizzle-kit
pnpm add drizzle-orm mysql2
pnpm add -D drizzle-kit
bun add drizzle-orm mysql2
bun add -D drizzle-kit
2๋จ๊ณ - ๋๋ผ์ด๋ฒ ์ด๊ธฐํ ๋ฐ ์ฟผ๋ฆฌ ์์ฑ
import { drizzle } from "drizzle-orm/mysql2" ;
const db = drizzle ( process . env . DATABASE_URL );
const response = await db .select () .from ( ... ) import { drizzle } from "drizzle-orm/mysql2" ;
// You can specify any property from the mysql2 connection options
const db = drizzle ({ connection : { uri : process . env . DATABASE_URL }});
const response = await db .select () .from ( ... )
๊ธฐ์กด ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ณตํด์ผ ํ๋ ๊ฒฝ์ฐ:
Client connection
Pool connection
import { drizzle } from "drizzle-orm/mysql2" ;
import mysql from "mysql2/promise" ;
const connection = await mysql .createConnection ({
host : "host" ,
user : "user" ,
database : "database" ,
...
});
const db = drizzle ({ client : connection }); import { drizzle } from "drizzle-orm/mysql2" ;
import mysql from "mysql2/promise" ;
const poolConnection = mysql .createPool ({
host : "host" ,
user : "user" ,
database : "database" ,
...
});
const db = drizzle ({ client : poolConnection });
IMPORTANT
DDL ๋ง์ด๊ทธ๋ ์ด์
๊ณผ ํจ๊ป ๋ด์ฅ migrate ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋จ์ผ client ์ฐ๊ฒฐ์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค.
์ฟผ๋ฆฌ ๋ชฉ์ ์ผ๋ก๋ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ client ๋๋ pool์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ๋?