drizzle-team / drizzle-team/drizzle-orm

[FEATURE]: Support UNIX socket in MySQL2

Open
#3,243 0 comments 1 reaction 0 assignees View on GitHub
db/mysql driver/mysql2 drizzle/kit enhancement
Dominant language
TypeScript
Stars
35.8k
Forks
1.6k
Avg merge
2d 7h
Merged PRs (30d)
4

Description

### Describe what you want

From drizzle-kit-mirror repo: https://github.com/drizzle-team/drizzle-kit-mirror/issues/118.

> MySQL2 supports [UNIX domain socket](https://github.com/sidorares/node-mysql2/blob/9051caf277990c110bb54cb4a8a23c497afb973c/typings/mysql/lib/Connection.d.ts#L143-L146).
>
> In fact, the following connection works.
>
> ```js
> import { drizzle } from 'drizzle-orm/mysql2';
> import { createConnection } from 'mysql2/promise';
>
> /** @type {import('mysql2/promise').ConnectionOptions} */
> export const dbCredentials = {
> socketPath: '/tmp/mysql.sock',
> user: 'hyunbinseo',
> database: 'abcd'
> };
>
> const connection = await createConnection(dbCredentials);
> drizzle(connection);
> ```
>
> While this config does not. (Identical credentials as above)
>
> ```js
> // drizzle.config.js
>
> /** @type { import("drizzle-kit").Config } */
> export default {
> out: './drizzle',
> schema: './src/lib/server/db/schema.ts',
> driver: 'mysql2',
> dbCredentials: {
> socketPath: '/tmp/mysql.sock', // Object literal may only specify known properties, and 'socketPath' does not exist in type '{ host: string; port?: number | undefined; user?: string | undefined; password?: string | undefined; database: string; } | { connectionString: string; }'.ts(2322)
> user: 'hyunbinseo',
> database: 'abcd'
> }
> };
> ```
>
> > We mirror connection params of database drivers — [Push and Pull, Drizzle Kit Configuration](https://orm.drizzle.team/kit-docs/conf#push-and-pull)
>
> When `drizzle-kit studio` is executed, it shows an incorrect error message. Reference [drizzle-team/drizzle-orm#858](https://github.com/drizzle-team/drizzle-orm/issues/858)
>
> ```
> Invalid input "mysql2" is not a valid driver. Available drivers: "pg", "mysql2", "better-sqlite", "libsql", "turso". You can read more about drizzle.config: https://orm.drizzle.team/kit-docs/config-reference
> ```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.