From 7c43ff0bf249d57df39d5539fdcd3eca204ad7be Mon Sep 17 00:00:00 2001 From: Fraol Lemecha Date: Wed, 6 Aug 2025 21:01:19 +0300 Subject: [PATCH] fix(cli): only show the overwrite message when the schema file exists and the code has changed (#3826) --- packages/cli/src/commands/generate.ts | 6 +++--- packages/cli/src/generators/prisma.ts | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/commands/generate.ts b/packages/cli/src/commands/generate.ts index aac3d15c79..3e9d6df241 100644 --- a/packages/cli/src/commands/generate.ts +++ b/packages/cli/src/commands/generate.ts @@ -9,7 +9,7 @@ import prompts from "prompts"; import fs from "fs/promises"; import chalk from "chalk"; import { getAdapter } from "better-auth/db"; -import { getGenerator } from "../generators"; +import { generateSchema } from "../generators"; export async function generateAction(opts: any) { const options = z @@ -45,7 +45,7 @@ export async function generateAction(opts: any) { const spinner = yoctoSpinner({ text: "preparing schema..." }).start(); - const schema = await getGenerator({ + const schema = await generateSchema({ adapter, file: options.output, options: config, @@ -56,7 +56,7 @@ export async function generateAction(opts: any) { logger.info("Your schema is already up to date."); process.exit(0); } - if (schema.append || schema.overwrite) { + if (schema.overwrite) { let confirm = options.y || options.yes; if (!confirm) { const response = await prompts({ diff --git a/packages/cli/src/generators/prisma.ts b/packages/cli/src/generators/prisma.ts index 85d12bafc8..8d27aaf6e6 100644 --- a/packages/cli/src/generators/prisma.ts +++ b/packages/cli/src/generators/prisma.ts @@ -15,6 +15,7 @@ export const generatePrismaSchema: SchemaGenerator = async ({ const tables = getAuthTables(options); const filePath = file || "./prisma/schema.prisma"; const schemaPrismaExist = existsSync(path.join(process.cwd(), filePath)); + let schemaPrisma = ""; if (schemaPrismaExist) { schemaPrisma = await fs.readFile( @@ -222,10 +223,12 @@ export const generatePrismaSchema: SchemaGenerator = async ({ } }); + const schemaChanged = schema.trim() !== schemaPrisma.trim(); + return { - code: schema.trim() === schemaPrisma.trim() ? "" : schema, + code: schemaChanged ? schema : "", fileName: filePath, - overwrite: true, + overwrite: schemaPrismaExist && schemaChanged, }; };