-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Provide environment information
System:
OS: macOS 15.5
CPU: (10) arm64 Apple M1 Pro
Memory: 73.70 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.7.0 - /Users/andrew/.nvm/versions/node/v20.7.0/bin/node
Yarn: 1.22.22 - /opt/homebrew/bin/yarn
npm: 10.8.1 - /Users/andrew/.nvm/versions/node/v20.7.0/bin/npm
pnpm: 10.5.2 - /opt/homebrew/bin/pnpm
Describe the bug
When running pnpm create t3-app@latest and using the following combination:
- Better Auth
- Drizzle
- PostgreSQL
It creates a schema.ts with the incorrect table prefix:
export const createTable = pgTableCreator((name) => `pg-drizzle_${name}`);
Expected behaviour is for pg-drizzle to be replaced with the project name the user entered for the question: What will your project be called?
Reproduction repo
To reproduce
Run pnpm create t3-app@latest with these key options selected:
- Better Auth
- Drizzle
- PostgreSQL
Full output:
❯ pnpm create t3-app@latest
___ ___ ___ __ _____ ___ _____ ____ __ ___ ___
/ __| _ \ __| / \_ _| __| |_ _|__ / / \ | _ \ _ \
| (__| / _| / /\ \| | | _| | | |_ \ / /\ \| _/ _/
\___|_|_\___|_/‾‾\_\_| |___| |_| |___/ /_/‾‾\_\_| |_|
│
◇ What will your project be called?
│ t3test
│
◇ Will you be using TypeScript or JavaScript?
│ TypeScript
│
◇ Will you be using Tailwind CSS for styling?
│ Yes
│
◇ Would you like to use tRPC?
│ Yes
│
◇ What authentication provider would you like to use?
│ BetterAuth
│
◇ What database ORM would you like to use?
│ Drizzle
│
◇ Would you like to use Next.js App Router?
│ Yes
│
◇ What database provider would you like to use?
│ PostgreSQL
│
◇ Would you like to use ESLint and Prettier or Biome for linting and formatting?
│ ESLint/Prettier
│
◇ Should we initialize a Git repository and stage the changes?
│ Yes
│
◇ Should we run 'pnpm install' for you?
│ Yes
│
◇ What import alias would you like to use?
│ ~/
Using: pnpm
✔ t3test scaffolded successfully!
Adding boilerplate...
✔ Successfully setup boilerplate for betterAuth
✔ Successfully setup boilerplate for drizzle
✔ Successfully setup boilerplate for tailwind
✔ Successfully setup boilerplate for trpc
✔ Successfully setup boilerplate for dbContainer
✔ Successfully setup boilerplate for envVariables
✔ Successfully setup boilerplate for eslint
Installing dependencies...
✔ Successfully installed dependencies!
Formatting project with prettier...
✔ Successfully formatted project
Initializing Git...
✔ Successfully initialized and staged git
Next steps:
cd t3test
Start up a database, if needed using './start-database.sh'
pnpm db:push
pnpm dev
git commit -m "initial commit"
❯ cd t3test
❯ cat src/server/db/schema.ts
.
.
.
export const createTable = pgTableCreator((name) => `pg-drizzle_${name}`);
.
.
.
Additional information
In order for the code in cli/src/installers/drizzle.ts to set the prefix in the schema to the project name, it expects the table prefix to be project1_${name}.
I think all that needs to be changed is this file:
cli/template/extras/src/server/db/schema-drizzle/with-better-auth-postgres.ts
// Change from this
export const createTable = pgTableCreator((name) => `pg-drizzle_${name}`);
// To this:
export const createTable = pgTableCreator((name) => `project1_${name}`);
This follows the pattern used elsewhere in the project.