Skip to content

NOTE

**Nota** — Al momento Prisma richiede che Node.js sia installato per eseguire determinati codici di generazione. Assicurati che Node.js sia installato nell'ambiente in cui esegui i comandi `bunx prisma`.
#### Creare un nuovo progetto">
	Per prima cosa, crea una directory e inizializzala con `bun init`.

	```bash
	mkdir prisma-postgres-app
	cd prisma-postgres-app
	bun init
	```


#### Installare le dipendenze Prisma">
	Poi installa la CLI di Prisma (`prisma`), Prisma Client (`@prisma/client`) e l'estensione accelerate come dipendenze.

	```bash
	bun add -d prisma
	bun add @prisma/client @prisma/extension-accelerate
	```


#### Inizializzare Prisma con PostgreSQL">
	Useremo la CLI di Prisma con `bunx` per inizializzare il nostro schema e la directory delle migrazioni. Useremo PostgreSQL come database.

	```bash
	bunx --bun prisma init --db
	```

	Questo crea uno schema di base. Dobbiamo aggiornarlo per usare il nuovo client senza Rust con l'ottimizzazione Bun. Apri `prisma/schema.prisma` e modifica il blocco del generatore, poi aggiungi un semplice modello `User`.

	```prisma prisma/schema.prisma
	generator client {
		provider = "prisma-client"
		output = "./generated" // [!code ++]
		engineType = "client" // [!code ++]
		runtime = "bun" // [!code ++]
	}

	datasource db {
		provider = "postgresql"
		url      = env("DATABASE_URL")
	}

	model User { // [!code ++]
		id    Int     @id @default(autoincrement()) // [!code ++]
		email String  @unique // [!code ++]
		name  String? // [!code ++]
	} // [!code ++]
	```


#### Configurare la connessione al database">
	Imposta l'URL del tuo database Postgres nel file `.env`.

	```ini .env
	DATABASE_URL="postgresql://username:password@localhost:5432/mydb?schema=public"
	```


#### Creare ed eseguire la migrazione del database">
	Poi genera ed esegui la migrazione iniziale.

	Questo creerà un file di migrazione `.sql` in `prisma/migrations` ed eseguirà la migrazione sul tuo database Postgres.

	```bash
	bunx --bun prisma migrate dev --name init
	```

	```txt
	Environment variables loaded from .env
	Prisma schema loaded from prisma/schema.prisma
	Datasource "db": PostgreSQL database "mydb", schema "public" at "localhost:5432"

	Applying migration `20250114141233_init`

	The following migration(s) have been created and applied from new schema changes:

	prisma/migrations/
	  └─ 20250114141233_init/
	    └─ migration.sql

	Your database is now in sync with your schema.

	✔ Generated Prisma Client (6.17.1) to ./generated in 18ms
	```


#### Generare Prisma Client">
	Come indicato nell'output, Prisma rigenera il nostro _Prisma client_ ogni volta che eseguiamo una nuova migrazione. Il client fornisce un'API completamente tipizzata per leggere e scrivere dal nostro database. Puoi rigenerare manualmente il client con la CLI di Prisma.

	```sh
	bunx --bun prisma generate
	```


#### Inizializzare Prisma Client con Accelerate">
	Ora dobbiamo creare un'istanza del client Prisma. Crea un nuovo file `prisma/db.ts` per inizializzare PrismaClient con l'adattatore Postgres.

	```ts prisma/db.ts
	import { PrismaClient } from "./generated/client";
	import { withAccelerate } from '@prisma/extension-accelerate'

	export const prisma = new PrismaClient().$extends(withAccelerate())
	```


#### Creare uno script di test">
	Scriviamo un semplice script per creare un nuovo utente, poi contare il numero di utenti nel database.

	```ts index.ts
	import { prisma } from "./prisma/db";

	// crea un nuovo utente
	await prisma.user.create({
	  data: {
	    name: "John Dough",
	    email: `john-${Math.random()}@example.com`,
	  },
	});

	// conta il numero di utenti
	const count = await prisma.user.count();
	console.log(`Ci sono ${count} utenti nel database.`);
	```


#### Eseguire e testare l'applicazione">
	Eseguiamo questo script con `bun run`. Ogni volta che lo eseguiamo, viene creato un nuovo utente.

	```bash
	bun run index.ts
	```

	```txt
	Ci sono 1 utenti nel database.
	```

	```bash
	bun run index.ts
	```

	```txt
	Ci sono 2 utenti nel database.
	```

	```bash
	bun run index.ts
	```

	```txt
	Ci sono 3 utenti nel database.
	```

Questo è tutto! Ora che hai configurato Prisma Postgres usando Bun, ti consigliamo di consultare la documentazione ufficiale di Prisma Postgres mentre continui a sviluppare la tua applicazione.

Bun a cura di www.bunjs.com.cn