drizzle-seed thinks I'm not using MySQL.

Error: The drizzle-seed package currently supports only PostgreSQL, MySQL, and SQLite databases. Please ensure your database is one of these supported types
    at seedFunc (/Users/user/Code/starter/node_modules/src/index.ts:393:9)
    at SeedPromise.then (/Users/user/Code/starter/node_modules/src/index.ts:167:10)


seed.ts
import "@/server/envConfig";
import { seed } from "drizzle-seed";
import { db } from ".";
import { account, user } from "./schema";

async function main() {
  await seed(db, { user, account });
}

main();



// db.ts
import { withReplicas } from "drizzle-orm/mysql-core";
import { drizzle } from "drizzle-orm/mysql2";
import { serverEnv } from "@/env/server";
import config from "./config";
import * as relations from "./relations";
import * as schema from "./schema";

const DRIZZLE_CONFIG = {
  schema: {
    ...schema,
    ...relations,
  },
  mode: "default" as const,
  casing: "snake_case" as const,
} as const;

const primaryDb = drizzle({
  ...DRIZZLE_CONFIG,
  connection: { uri: config.primary },
});

const replicaDbs =
  config.read.length > 0
    ? config.read.map((url) =>
        drizzle({
          ...DRIZZLE_CONFIG,
          connection: { uri: url },
        }),
      )
    : [primaryDb];

const drizzleDb = withReplicas(
  primaryDb,
  replicaDbs as [typeof primaryDb, ...(typeof primaryDb)[]],
);

declare const global: {
  drizzleGlobal: typeof drizzleDb;
};

const db = global.drizzleGlobal ?? drizzleDb;

export { db, primaryDb, replicaDbs };

export type TransactionType = Parameters<
  Parameters<typeof db.transaction>[0]
>[0];

if (serverEnv.NODE_ENV !== "production") global.drizzleGlobal = db;


// drizzle.config.ts
import { type Config, defineConfig } from "drizzle-kit";
import config from "./server/db/config";

export default defineConfig({
  dialect: "mysql",
  dbCredentials: {
    url: config.primary,
  },
  casing: "snake_case",
}) satisfies Config;
Was this page helpful?