Add support for Neon database in db-setup and update dependencies (#339)

Co-authored-by: Aman Varshney <amanvarshney.work@gmail.com>
This commit is contained in:
Igor Belogurov
2025-06-25 16:39:03 +02:00
committed by GitHub
parent 353f60ea6d
commit 32275d3f16
4 changed files with 36 additions and 5 deletions

View File

@@ -0,0 +1,5 @@
---
"create-better-t-stack": patch
---
Add support for Neon database in db-setup

View File

@@ -34,6 +34,7 @@ export const dependencyVersionMap = {
"drizzle-kit": "^0.31.2",
"@libsql/client": "^0.15.9",
"@neondatabase/serverless": "^1.0.1",
pg: "^8.14.1",
"@types/pg": "^8.11.11",

View File

@@ -48,11 +48,19 @@ export async function setupDatabase(config: ProjectConfig): Promise<void> {
projectDir: serverDir,
});
} else if (database === "postgres") {
await addPackageDependency({
dependencies: ["drizzle-orm", "pg"],
devDependencies: ["drizzle-kit", "@types/pg"],
projectDir: serverDir,
});
if (dbSetup === "neon") {
await addPackageDependency({
dependencies: ["drizzle-orm", "@neondatabase/serverless"],
devDependencies: ["drizzle-kit"],
projectDir: serverDir,
});
} else {
await addPackageDependency({
dependencies: ["drizzle-orm", "pg"],
devDependencies: ["drizzle-kit", "@types/pg"],
projectDir: serverDir,
});
}
} else if (database === "mysql") {
await addPackageDependency({
dependencies: ["drizzle-orm", "mysql2"],

View File

@@ -1,12 +1,29 @@
{{#if (or (eq runtime "bun") (eq runtime "node"))}}
{{#if (eq dbSetup "neon")}}
import { neon } from '@neondatabase/serverless';
import { drizzle } from 'drizzle-orm/neon-http';
const sql = neon(process.env.DATABASE_URL || "");
export const db = drizzle(sql);
{{else}}
import { drizzle } from "drizzle-orm/node-postgres";
export const db = drizzle(process.env.DATABASE_URL || "");
{{/if}}
{{/if}}
{{#if (eq runtime "workers")}}
{{#if (eq dbSetup "neon")}}
import { neon } from '@neondatabase/serverless';
import { drizzle } from 'drizzle-orm/neon-http';
import { env } from "cloudflare:workers";
const sql = neon(env.DATABASE_URL || "");
export const db = drizzle(sql);
{{else}}
import { drizzle } from "drizzle-orm/node-postgres";
import { env } from "cloudflare:workers";
export const db = drizzle(env.DATABASE_URL || "");
{{/if}}
{{/if}}