Drizzle Kit is used in the packages/data-ops package to manage schemas and generate TypeScript types. You can pull existing database schemas into your project by running pnpm run drizzle:pull. The generated schemas will be available in src/drizzle/schema.ts.
### PostgreSQL Drizzle Configuration
// packages/data-ops/drizzle.config.ts
import type { Config } from "drizzle-kit";
const config: Config = {
out: "./src/drizzle",
schema: ["./src/drizzle/auth-schema.ts"],
dialect: "postgresql",
dbCredentials: {
url: `postgresql://${process.env.DATABASE_USERNAME}:${process.env.DATABASE_PASSWORD}@${process.env.DATABASE_HOST}`,
},
tablesFilter: ["!_cf_KV", "!auth_*"],
};
export default config satisfies Config;
### MySQL Drizzle Configuration
// packages/data-ops/drizzle.config.ts
import type { Config } from "drizzle-kit";
const config: Config = {
out: "./src/drizzle",
schema: ["./src/drizzle/auth-schema.ts"],
dialect: "mysql",
dbCredentials: {
url: `mysql://${process.env.DATABASE_USERNAME}:${process.env.DATABASE_PASSWORD}@${process.env.DATABASE_HOST}`,
},
tablesFilter: ["!_cf_KV", "!auth_*"],
};
export default config satisfies Config;
### Cloudflare D1 Drizzle Configuration
// packages/data-ops/drizzle.config.ts
import type { Config } from "drizzle-kit";
const config: Config = {
out: "./src/drizzle",
schema: ["./src/drizzle/auth-schema.ts"],
dialect: "sqlite",
driver: "d1-http",
dbCredentials: {
accountId: process.env.CLOUDFLARE_ACCOUNT_ID!,
databaseId: process.env.CLOUDFLARE_DATABASE_ID!,
token: process.env.CLOUDFLARE_D1_TOKEN!,
},
tablesFilter: ["!_cf_KV", "!auth_*"],
};
export default config satisfies Config;