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, }; };