04_DatabaseMigrate

Code-Dateien

DateinameAktion
CODECode_bank.zipDownload
CODECode_pizza.zipDownload
CODECode_student.zipDownload

Videos

DateinameAktion
VIDEOVideo_Bank_DAbspielen
VIDEOVideo_Pizza_EAbspielen

Lernmaterialien

Database migrate

Echtdaten

000.png

Daten mit einer negativen id sind Testdaten und werden über seed.ts erzeugt!

Daten mit einer positiven id sind Echtdaten und gehören übernommen!

000b.png
sqlite3 student.db 
SQLite version 3.45.1 2024-01-30 16:01:20
Enter ".help" for usage hints.
sqlite> .headers on
sqlite> .mode csv
sqlite> .output export.csv
sqlite> SELECT * FROM Student WHERE id >= 0;
sqlite> .quit

Postgres Server

docker run --name postgres -e POSTGRES_PASSWORD=postgres  -p 5432:5432 -d postgres
docker ps
docker stop postgres
docker start postgres

!!! Wenn schon auf der postgres Daten vorhanden sind gehören diese gelöscht!

deno.json

  "tasks": {
    ...
    "prisma:reset": "deno -A prisma migrate reset"
  },
deno task prisma:reset

Visual Studio Code

007a.png
002.png

.env

# DATABASE_URL="file:../student.db"
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/studentdb"
003.png
004.png
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client"
  runtime = "deno"
  output = "../generated"
}

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

model Student {
  ...
}

 

deno task pmd
deno task pms
deno task seed
005.png
006.png
007b.png
013.png
007c.png

Echtdaten

psql "postgresql://postgres:postgres@localhost:5432/studentdb"
\copy "Student"(id, name, course) FROM 'export.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',' , QUOTE '"', ESCAPE '"');
\q
009.png
010.png
012.png
l
psql "postgresql://postgres:postgres@localhost:5432/studentdb"
ALTER SEQUENCE "Student_id_seq" RESTART WITH 1000;
011.png