Tietokannan liittäminen Vercel-julkaisuun

27.07.2023

Aikaisemmin käytiin läpi miten github-repositorion voi helposti julkaista Internettiin Vercel-palvelun kautta. Näin päästiin testaamaan jo sitä web-sovelluksen käyttöliittymäpuolta ihan internetistä käsin, kaikenlaisilla laitteilla ja selaimilla.

Mikä tuolloin aikaisemmin jäi vielä tekemättä, oli se PostgreSQl - tietokannan liittäminen mukaan tähän web-sovellukseen.

Seuraavaksi kokeillaan liittää Vercelin tarjoama ilmainen postgresql (Neon) storage palvelu Vercel-projektiin ja muokataan .env tiedostoa tarvittavilta osin.

Näin web-sovelluksen pitäisi lähteä toimimaan Vercelin palvelimella, kuten meidän paikallisella koneella, Virtualbox-hiekkalaatikossa, jossa koodia on tähän asti pääasiassa kehitetty.

Kirjaudu sisälle Vercel palveluun ja valitse "Storage" välilehti.

Paina Create, "Postgres painiketta", luodaksesi uuden tietokannan.

Valitse Postgres.

Kirjoita tietokannalle haluamasi "tietokannan nimi" (Database Name).

(Joogaplanneri projektissa, hiekkalaatikossa käytettiin nimenä "public", kokeillaan tässä myös käyttää sitä. Myöhemmin sen voi tietenkin vaihtaa halutuksi.)

Paina "Connect-painiketta", yhdistääksesi tämän uuden tietokannan projektiin mukaan.

.env local välilehdeltä näet POSTGRES_URL="******************" polun, joka sinun täytyy tietysti kopioida omaan .env tiedostoosi, ja päivittää projekti Vercelin palvelimella.

Pikkujuttu, mikä kannattaa selvittää tässä vaiheessa.

Koska tietokantana käytetään, Neonin tarjoamaa "serverless" postgres tietokantaa, joudutaan tähän "url-rimpsun" perään vielä laittamaan yksi tarkentava vipu:   ( ?schema=public&pgbouncer=true)

Tähän löytyi apua googlaamalla,  

 https://stackoverflow.com/questions/71026259/prisma-postres-error-prepared-statement-s0-already-exists

https://www.prisma.io/docs/guides/performance-and-optimization/connection-management/configure-pg-bouncer

......pooler.us-east-1.postgres.vercel-storage.com:5432/verceldb"

...... pooler.us-east-1.postgres.vercel-storage.com:5432/verceldb?schema=public&pgbouncer=true"

Nyt pitää tietenkin tallentaa .env tiedosto ja kommitoida muutos githubin repositorioon. Se käy helposti Github-desktop apuohjelman avulla.

Vercelin pilvipalvelu huomaa automaattisesti muutoksen github-repositoriossa ja lähtee kääntämään projektin uudelleen Vercelin palvelimelle.

Nyt täytyy vielä jotenkin saada luotua ne tietokannan taulut sinne tietokannan sisälle.

Tämä on hiukan epäselvää vielä, miten se parhaiten onnistuisi.

Mutta yksi tapa on käyttää Vercelin palvelua ja ajaa SQL-skripti komennot, taulujen luomiseksi. SQL-komentoja voidaan kirjoittaa "Query" kenttään, ja painaa "Run Query", jolloin tietokantaan luodaan taulut, joita skriptissä käsketään luoda.


Kun tarvittavat tualut on luotu tietokantaan, voidaankin jo kokeilla FullStack web-applikaation toimivuutta.

Voidaan yrittää luoda uusi käyttäjä.

Joku pieni virhe vielä on koodissa tai asetuksissa. Mutta uuden käyttäjätilin luominen silti onnistuu nyt jo.

Uuden "joogaharjoituksen" tallentaminen tietokantaan onnistuu myös.

Eli tästä on nyt hyvä jatkaa kehitystä eteenpäin.  Vercelin ilmaisen PostgreSQL-tietokannan lukeminen ja kirjoittaminen onnistuu jo.

Seuraavaksi täytyy vain alkaa kehittämään koodia paremmaksi ja korjailla virheitä.


Kuinka Vercel voi tarjota ilmaiseksi tietokantaa kaikkien kehittäjien käyttöön?

 - No ilmaiseksi saa vain yhden Storage-tietokannan / tunnukset, ja kovin iso ei tietokantakaan voi olla, vain 256 Megatavua maksimissaan.

- Vercel tietysti laskuttaa muista asioista, ja kerää ilmaispalvelujen avulla käyttäjiä omalle pilvipalvelulleen.

- PostgreSQL-tietokanta tarjotaan vielä kokeiluvaiheessa olevalla "Neon-toteutuksena". Tämä on uudenlainen avoin toteutustapa, jolla postgresql palvelimista pyritään tekemään "Serverless-arkkitehtuuriin" sopivia. Tässä työssä on vahvasti mukana mm. suomalainen tietokantakehittäjä Heikki Linnakangas;


Luo kotisivut ilmaiseksi! Tämä verkkosivu on luotu Webnodella. Luo oma verkkosivusi ilmaiseksi tänään! Aloita