cli not generating migration files due to cf bindings usage
im trying to set up better auth on cf workers (currently with hono, but would switch once this i would find a fix for this).
i have the following betterauth config:
it has to be a function as i need to pass the cf env in somehow.
this is where the client is created:
has anyone experienced this aswell before?
im aware that the cli is trying to look for a config exported under the name
auth
, but under my circumstances it's simply just not possibleSolution:Jump to solution
I recommend making a fake auth file and a real auth file.
The fake one is just your better-auth config except for any fields which require ENV vars.
^ This file will be the one you would then use for the better-auth cli to read.
The real one would be the one you currently have....
11 Replies
Solution
I recommend making a fake auth file and a real auth file.
The fake one is just your better-auth config except for any fields which require ENV vars.
^ This file will be the one you would then use for the better-auth cli to read.
The real one would be the one you currently have.
@mezo
sounds good.
is there a plan to have an actual fix for this?
is something like ReturnType<typeof createAuth> not valid?
We run the code. We don't infer types and determine from there.
It's a cloudflare limitation, I don't think we will be making a solution for this.
i see
how would i create a mock d1 database? would it just be sqlite?
Looking at the docs, env can also be imported like this:
import { env } from "cloudflare:workers";
so eventually you don't need to make this dynamic.Cloudflare Docs
Bindings (env) · Cloudflare Workers docs
Worker Bindings that allow for interaction with other Cloudflare Resources.
database shouldn't be an env variable
welcome to cloudflare
doesnt work, module undefined as we are not in cf context when generating the schema
I guess what @Ping meant with database shouldn't be an env variable: you can't put an env variable into the
database
property of better-auth. You have to e.g. use drizzle (especially since drizzle supports D1):
https://www.better-auth.com/docs/adapters/drizzle
https://orm.drizzle.team/docs/connect-cloudflare-d1Drizzle ORM Adapter | Better Auth
Integrate Better Auth with Drizzle ORM.
Drizzle ORM - Cloudflare D1
Drizzle ORM is a lightweight and performant TypeScript ORM with developer experience in mind.
Bingo
ah yeah realized that sometime after