MCPcopy
hub / github.com/t3-oss/create-t3-app / drizzleInstaller

Function drizzleInstaller

cli/src/installers/drizzle.ts:9–90  ·  view source on GitHub ↗
({
  projectDir,
  packages,
  scopedAppName,
  databaseProvider,
})

Source from the content-addressed store, hash-verified

7import { addPackageScript } from "~/utils/addPackageScript.js";
8
9export const drizzleInstaller: Installer = ({
10 projectDir,
11 packages,
12 scopedAppName,
13 databaseProvider,
14}) => {
15 addPackageDependency({
16 projectDir,
17 dependencies: ["drizzle-kit"],
18 devMode: true,
19 });
20 addPackageDependency({
21 projectDir,
22 dependencies: [
23 "drizzle-orm",
24 (
25 {
26 planetscale: "@planetscale/database",
27 mysql: "mysql2",
28 postgres: "postgres",
29 sqlite: "@libsql/client",
30 } as const
31 )[databaseProvider],
32 ],
33 devMode: false,
34 });
35
36 const extrasDir = path.join(PKG_ROOT, "template/extras");
37
38 const configFile = path.join(
39 extrasDir,
40 `config/drizzle-config-${
41 databaseProvider === "planetscale" ? "mysql" : databaseProvider
42 }.ts`
43 );
44 const configDest = path.join(projectDir, "drizzle.config.ts");
45
46 const schemaBaseName = packages?.betterAuth.inUse
47 ? "with-better-auth"
48 : packages?.nextAuth.inUse
49 ? "with-auth"
50 : "base";
51 const schemaSrc = path.join(
52 extrasDir,
53 "src/server/db/schema-drizzle",
54 `${schemaBaseName}-${databaseProvider}.ts`
55 );
56 const schemaDest = path.join(projectDir, "src/server/db/schema.ts");
57
58 // Replace placeholder table prefix with project name
59 let schemaContent = fs.readFileSync(schemaSrc, "utf-8");
60 schemaContent = schemaContent.replace(
61 "project1_${name}",
62 `${scopedAppName}_\${name}`
63 );
64
65 let configContent = fs.readFileSync(configFile, "utf-8");
66

Callers

nothing calls this directly

Calls 2

addPackageDependencyFunction · 0.85
addPackageScriptFunction · 0.85

Tested by

no test coverage detected