Moderni Web-sovelluskehitys – Osa2

Prisma ja Postgresql tietokanta yhdessä

Prisma on ORM-työkalu (Object Releational Mapping), jonka avulla tietokantojen käsittely omasta koodista helpottuu paljon. Se tavallaan piilottaa tietokantojen SQL-kielen kysely lauseet taka-alalle, ja tietoa on mahdollista hakea ja tallentaa koodissa “helpommilla lauseilla”. Taka-alalla, ORM-kuitenkin edelleen käyttää perinteisiä SQL-kielisiä kyselyitä, joten kehittäjällä on hyvä olla kokemusta myös niistä, vaikka niitä ei prisma kirjastoa käytettäessä enää jatkuvasti tarvitse itse käyttää ja pähkäillä, kun tekee omaa sovellusta.

Scheman avulla määritellään tietokannan rakenne

Prisman Schema on tärkeä osa Prisman toimintaa ja sen avulla määritellään tietokannan taulut, sarakkeet, suhteet ja validoinnit. Schemaa käytetään Prisman työkaluissa, joiden avulla generoidaan tietokantakäsittelykoodia ja suoritetaan tietokantakyselyitä.

Prisman Schema määritellään tyypitettynä JavaScript-koodina, joka kuvailee tietokannan rakennetta ja tietomalleja. Tämä mahdollistaa tietokantakäsittelyn suorittamisen tyyppiturvallisella tavalla ja auttaa vähentämään virheitä kehitysprosessissa. Schema määrittelee taulut ja niiden sarakkeet Prisma-nimisessä DSL (Domain-Specific Language) syntaksissa.

Esimerkiksi, jos haluamme luoda käyttäjät-taulun, voimme määritellä sen seuraavalla tavalla Prisma-schemassa:

Tässä esimerkissä määritellään User-taulu, joka sisältää sarakkeet;

id, name, email, createdAt ja updatedAt

Määritellään myös, että id-sarake toimii pääavaimena @id ja generoi arvot automaattisesti @default(autoincrement().

Lisäksi email-sarakkeen arvon on oltava uniikki @unique ja createdAt– ja updatedAt-sarakkeiden arvot asetetaan oletusarvoisesti nykyhetkeen @default(now()), @updatedAt.

Schemassa voi myös määritellä suhteita eri taulujen välillä, kuten yksi-yhteen, yksi-moneen ja moni-moneen -suhteet. Prisman Schema tarjoaa selkeät ja intuitiiviset tavat määritellä nämä suhteet.

Kun Schema on määritelty, Prisma käyttää sitä generoidakseen tietokantakäsittelykoodin, kuten luokat tai funktiot, joiden avulla voit suorittaa tietokantakyselyjä ja käsitellä tietokantaa Prisma API:n kautta.

Prisman Schema on voimakas työkalu, joka mahdollistaa tietokannan rakenteen ja tietomallien selkeän ja ymmärrettävän määrittelyn. Se auttaa kehittäjiä työskentelemään tietokannan kanssa abstraktimmalla tasolla ja tarjoaa hyvät työkalut tietokantakäsittelykoodin generoimiseen ja tietokantakyselyjen suorittamiseen.

Lisäksi Prisman Schema tarjoaa mahdollisuuden määritellä validointeja tietokannan tasolla. Voit esimerkiksi asettaa tietyille sarakkeille rajoituksia, kuten minimi- ja maksimipituudet, tiettyjen merkkijonojen sallitut arvot tai sarakkeiden pakollisuuden. Tämä auttaa varmistamaan, että tietokantaan tallennetut tiedot ovat eheät ja täyttävät määritellyt vaatimukset.

Prisman Schemaa käytetään myös Prisman migrointityökalujen yhteydessä. Kun teet muutoksia tietokantarakenteeseen, kuten uusien taulujen lisäämistä, sarakkeiden muuttamista tai poistamista, voit käyttää migrointityökaluja muutosten päivittämiseen tietokantaan. Prisma käyttää Schemaa migrointityökalujen yhteydessä varmistaakseen, että muutokset ovat yhteensopivia tietokannan rakenteen kanssa ja suorittaa tarvittavat muutokset turvallisesti.

Prisman Schema tarjoaa myös mahdollisuuden käyttää Prisma Clientin generoimia tyyppitietoja frontend-kehityksessä. Tämä tarkoittaa, että voit käyttää Prisman generoimia tyyppitietoja React-komponenteissa tai muissa frontend-työkaluissa, mikä tekee tiedonkäsittelystä ja kommunikaatiosta backendin kanssa helpompaa ja virhealttiutta vähentävää.

Prisman Schema on siis olennainen osa Prismaa, joka mahdollistaa selkeän ja tyypitetyn tietokannan määrittelyn, validoinnit, migroinnit ja tyyppitietojen käytön. Se tarjoaa kehittäjille tehokkaan tavan hallita ja käsittää tietokantaa web-sovellusten kehityksessä.

Tässä on yksinkertainen esimerkki Prisman ja PostgreSQL-tietokannan käytöstä yhdessä:

Asenna riippuvuudet: Asenna Prisma ja PostgreSQL riippuvuudet projektiisi. Voit tehdä tämän käyttämällä npm- tai yarn-pakettienhallintaa. Esimerkiksi, jos käytät npm:ää, suorita seuraava komento projektisi juuressa:

npm install prisma @prisma/client

npm install pg

Luo Prisma-tiedosto: Luo Prisma-tiedosto projektiisi, joka kuvaa tietokantarakennetta ja määrittelee taulut, sarakkeet ja suhteet. Voit luoda tiedoston nimeltä prisma/schema.prisma ja määritellä tietokantarakenteen Prisman DSL-syntaksilla. Tässä on yksinkertainen esimerkki:

Tässä esimerkissä määritellään yksinkertainen User-taulu, joka sisältää sarakkeet; id, name ja email.

Pääavaimena toimii id-sarake ja se generoi arvot automaattisesti.

email-sarake on uniikki ja name-sarake on tavallinen merkkijono.

  1. Määrittele yhteys PostgreSQL-tietokantaan: Määritä datasource-lohkossa Prisma-tiedostossa yhteys PostgreSQL-tietokantaan. Varmista, että asetat oikean tietokantayhteyden tiedot, kuten käyttäjänimen, salasanan, tietokannan nimen ja tarvittaessa tietokantapalvelimen osoitteen ja portin.
  2. Luo Prisma Client: Käytä Prismaa luomaan Prisma Client, joka tarjoaa käyttöliittymän tietokantakyselyjen suorittamiseen. Prisma Client generoidaan automaattisesti Prisma-tiedostosi perusteella. Voit luoda Prisma Clientin suorittamalla seuraavan komennon projektisi juuressa:

npx prisma generate

Tämä komento generoi Prisma Clientin koodin, jota voit käyttää tietokantakyselyjen suorittamiseen.

  1. Suorita tietokantakyselyt: Käytä Prisma Clientia suorittamaan tietokantakyselyjä projektissasi. Voit käyttää Prisma Clientin generoimia funktioita, jotka vastaavat määrittämääsi tietokantarakennetta. Tässä on yksinkertainen esimerkki, jossa luodaan uusi käyttäjä ja haetaan kaikki käyttäjä tiedot.

Tässä esimerkissä käytämme Prisma Clientin generoimaa user.create-funktiota luomaan uuden käyttäjän tietokantaan. Annamme käyttäjälle nimen ja sähköpostiosoitteen. Tulostamme sitten luodun käyttäjän tiedot konsoliin.

Sen jälkeen käytämme user.findMany-funktiota hakemaan kaikki käyttäjät tietokannasta. Tulostamme kaikkien käyttäjien tiedot konsoliin.

Lopuksi katkaisemme yhteyden tietokantaan käyttämällä prisma.$disconnect()-funktiota.

Tämä oli yksinkertainen esimerkki Prisman ja PostgreSQL-tietokannan käytöstä yhdessä. Prisman avulla voit suorittaa monimutkaisempia kyselyitä, lisätä suhteita taulujen välillä, suorittaa migrointeja ja paljon muuta.

Tämä yhdistelmä tarjoaa tehokkaan ja helppokäyttöisen tavan käsitellä tietokantaa web-sovellusten kehityksessä.