Databáze - Rumec/pb138-project GitHub Wiki

Jak zprovoznit databázi

  • týká se to backendu, tj. projekt DB-server

  • je třeba mít nainstalovaný databázový server typu PostgreSQL

    • instalace skrze Docker: docker run -p 5432:5432 --name pc-configurator-db-server -e POSTGRES_PASSWORD=mypassword -d postgres
      • toto vytvoří default databázi postgres
      • použije se default login postgres
      • výsledek by měl vypadat takto (Docker desktop):
        • alternativně lze zkontrolvat pomocí příkazu docker ps (Process Status), který vypíše kontejnery
  • connection string se nachází v souboru .env jako "environment variable" DATABASE_URL:

    • tento connection string se načítá do souboru schema.prisma z tohoto souboru .env voláním env("DATABASE_URL")
    • DATABASE_URL="postgresql://postgres:mypassword@localhost:5432/pc-configurator-db?schema=public"
      • tento connection string typu postgresql definuje/požaduje: ¨
        • databázi pc-configurator-db
        • ve schématu public (nemusí se uvést, public je default)
        • na adrese localhost:5432 (127.0.0.1:5432)
        • přihlášení:
          • login postgres
          • heslo mypassword
  • prohlížet databázový server lze skrze program pgAdmin (https://www.pgadmin.org/download/pgadmin-4-windows/)

    • POZOR: Create znamená "Přidat připojení k..."
  • pokud je běžící container s Postgre databází, tak potom se k ní lze připojit na portu 5432 (127.0.0.1) pod jménem postgres a heslem mysecretpassword

další postup:

1. Jak založit tabulky

  • toto typicky jednou/poprvé pro vytvoření databáze a tabulek v lokálním databázovém serveru typu PostgreSQL

2. Jak vložit data do databáze (seed)

  • při potřebě resetování dat v databázi

Jak založit tabulky a databázi (migrace schématu)

  • spustit npm run migrate (to spustí skript migrate z package.json tohoto projektu)
    • alternativně:
    • toto založí databázi, pokud neexistuje (prisma generate dev (interně zavolaný příkaz) "generates the database if it does not exist")

Jak vložit data do databáze (seed)

  • v package.json spustit skript seed:
  • to reálně spustí funkci main() v seed.ts, která v aktuální verzi vymaže stará data a vloží sample data ze souboru components/all.ts