Drizzle ORM - MySQL (original) (raw)
To use Drizzle with a MySQL database, you should use the mysql2
driver
According to the official website,mysql2
is a MySQL client for Node.js with focus on performance.
Drizzle ORM natively supports mysql2
with drizzle-orm/mysql2
package.
Step 1 - Install packages
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
Step 2 - Initialize the driver and make a query
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(...)
If you need to provide your existing driver:
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
For the built in migrate
function with DDL migrations we and drivers strongly encourage you to use single client
connection.
For querying purposes feel free to use either client
or pool
based on your business demands.