mirror of
https://github.com/FranP-code/create-better-t-stack.git
synced 2025-10-12 23:52:15 +00:00
feat(cli): prisma + workers, prisma + turso, planetscale (postgres/mysql) support (#567)
This commit is contained in:
@@ -1,10 +1,38 @@
|
||||
import "dotenv/config";
|
||||
import path from "node:path";
|
||||
import type { PrismaConfig } from "prisma";
|
||||
{{#if (eq dbSetup "d1")}}
|
||||
import { PrismaD1 } from "@prisma/adapter-d1";
|
||||
{{/if}}
|
||||
{{#if (eq dbSetup "turso")}}
|
||||
import { PrismaLibSQL } from "@prisma/adapter-libsql";
|
||||
{{/if}}
|
||||
|
||||
export default {
|
||||
{{#if (or (eq dbSetup "d1") (eq dbSetup "turso"))}}
|
||||
experimental: {
|
||||
adapter: true
|
||||
},
|
||||
{{/if}}
|
||||
schema: path.join("prisma", "schema"),
|
||||
migrations: {
|
||||
path: path.join("prisma", "migrations"),
|
||||
}
|
||||
},
|
||||
{{#if (eq dbSetup "d1")}}
|
||||
async adapter() {
|
||||
return new PrismaD1({
|
||||
CLOUDFLARE_D1_TOKEN: process.env.CLOUDFLARE_D1_TOKEN,
|
||||
CLOUDFLARE_ACCOUNT_ID: process.env.CLOUDFLARE_ACCOUNT_ID,
|
||||
CLOUDFLARE_DATABASE_ID: process.env.CLOUDFLARE_DATABASE_ID,
|
||||
});
|
||||
},
|
||||
{{/if}}
|
||||
{{#if (eq dbSetup "turso")}}
|
||||
async adapter() {
|
||||
return new PrismaLibSQL({
|
||||
url: process.env.DATABASE_URL || "",
|
||||
authToken: process.env.DATABASE_AUTH_TOKEN,
|
||||
});
|
||||
},
|
||||
{{/if}}
|
||||
} satisfies PrismaConfig;
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
import { PrismaClient } from "./generated/client";
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
export default prisma;
|
||||
@@ -10,10 +10,20 @@ generator client {
|
||||
{{/if}}
|
||||
{{#if (eq runtime "workers")}}
|
||||
runtime = "workerd"
|
||||
{{#if (eq dbSetup "d1")}}
|
||||
previewFeatures = ["driverAdapters"]
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if (eq dbSetup "turso")}}
|
||||
previewFeatures = ["driverAdapters"]
|
||||
{{/if}}
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "sqlite"
|
||||
{{#if (eq dbSetup "turso")}}
|
||||
url = "file:./local.db"
|
||||
{{else}}
|
||||
url = env("DATABASE_URL")
|
||||
{{/if}}
|
||||
}
|
||||
|
||||
28
apps/cli/templates/db/prisma/sqlite/src/db/index.ts.hbs
Normal file
28
apps/cli/templates/db/prisma/sqlite/src/db/index.ts.hbs
Normal file
@@ -0,0 +1,28 @@
|
||||
{{#if (eq dbSetup "d1")}}
|
||||
import { env } from "cloudflare:workers";
|
||||
import { PrismaD1 } from "@prisma/adapter-d1";
|
||||
import { PrismaClient } from "../../prisma/generated/client";
|
||||
|
||||
const adapter = new PrismaD1(env.DB);
|
||||
const prisma = new PrismaClient({ adapter });
|
||||
|
||||
export default prisma;
|
||||
{{else if (eq dbSetup "turso")}}
|
||||
import { PrismaLibSQL } from "@prisma/adapter-libsql";
|
||||
import { PrismaClient } from "../../prisma/generated/client";
|
||||
|
||||
const adapter = new PrismaLibSQL({
|
||||
url: process.env.DATABASE_URL || "",
|
||||
authToken: process.env.DATABASE_AUTH_TOKEN,
|
||||
});
|
||||
|
||||
const prisma = new PrismaClient({ adapter });
|
||||
|
||||
export default prisma;
|
||||
{{else}}
|
||||
import { PrismaClient } from "../../prisma/generated/client";
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
export default prisma;
|
||||
{{/if}}
|
||||
Reference in New Issue
Block a user