15_DatabaseNeon

Keine Dateien in diesem Thema verfügbar.

Lernmaterialien

Database

https://neon.com/

001.png

Since your current project is a student management demo (without user logins yet):

🔹 Keep “Neon Auth” OFF for now.
You’ll get a clean, simple PostgreSQL database with zero extra tables.

If later you add a real user system, you can enable Neon Auth or integrate another provider (like Azure Entra ID or Auth0).

002.png

Test the connetion:

psql 'postgresql://neondb_owner:__________@ep-lively-snow-a9q8ol8t-pooler.gwc.azure.neon.tech/neondb?sslmode=require&channel_binding=require'

.env.production

DATABASE_URL="postgresql://neondb_owner:__________@ep-lively-snow-a9q8ol8t-pooler.gwc.azure.neon.tech/neondb?sslmode=require&channel_binding=require"

.env* nie committen → eine .env.example mit Platzhaltern ins Repo legen.

prisma/schema.prisma bleibt gleich

generator client { provider = "prisma-client-js" }
datasource db     { provider = "postgresql"; url = env("DATABASE_URL") }

model Student {
  id        Int      @id @default(autoincrement())
  name      String
  course    String
  createdAt DateTime @default(now())
}

package.json

  "scripts": {
    "dev": "nodemon server.js",
    "start": "node server.js",
    "postinstall": "prisma generate",

    "db:generate": "prisma generate",
    "db:migrate:dev": "dotenv -e .env -- prisma migrate dev",
    "db:studio": "dotenv -e .env -- prisma studio",
    "db:seed:dev": "dotenv -e .env -- node prisma/seed.js",

    "db:deploy:prod": "dotenv -e .env.production -- prisma migrate deploy"
  }

Installiere dotenv-cli (nur einmal nötig)

npm install -D dotenv-cli
npx dotenv --help

Lokaler workflow

npm run db:migrate:dev
npm run db:seed:dev
npm run dev