PostgreSQL - Raision-seudun-koulutuskuntayhtyma/Tietokannat GitHub Wiki
Asennus
Suositeltu Windows-asennuspaketti löytyy osoitteesta https://www.postgresql.org/download/windows/
Asennushakemisto on C:\Program Files\PostgreSQL\10
ja datahakemisto on C:\Program Files\PostgreSQL\10\data
Versio 10.18 (viimeisin viralliseti Windows 10:lle tuettu)
Postgres
-käyttäjän salasana Q2werty
Palvelin kuuntelee TCP-porttia 5432
Tietokantojen oletusaakkostus (locale) Finnish, Finland
Asetus | Arvo |
---|---|
Installation Directory | C:\Program Files\PostgreSQL\10 |
Server Installation Directory | C:\Program Files\PostgreSQL\10 |
Data Directory | C:\Program Files\PostgreSQL\10\data |
Database Port | 5432 |
Database Superuser | postgres |
Operating System Account | NT AUTHORITY\NetworkService |
Database Service | postgresql-x64-10 |
Command Line Tools Installation Directory | C:\Program Files\PostgreSQL\10 |
pgAdmin4 Installation Directory | C:\Program Files\PostgreSQL\10\pgAdmin 4 |
Stack Builder Installation Directory | C:\Program Files\PostgreSQL\10 |
Stackbuilder komponentit
Valitut komponentit:
- Language Pack v. 2
- PGBouncer
- Slony-I
- PostGIS v.3
- Apache web server
- Ajurit (Npgsql, JDBC, ODBC 64)
Asetus | Arvo |
---|---|
Web-palvelun hakemisto | C:\Program Files (x86)\edb\pem\httpd |
Apache portti | 8080 |
.NET-ajurien asennushakemisto | C:\Program Files (x86)\PostgreSQL\Npgsql |
JDBC-ajurin hakemisto | C:\Program Files (x86)\PostgreSQL\pgJDBC |
ODBC-ajurin hakemisto | C:\Program Files\PostgreSQL\psqlODBC |
PGAdmin 4
SQL Power Architect
JDBC-ajurin pitää käydä lisäämässä käsin, jotta yhteyden muodostus tietokantaan onnistuu. Lisäyksen jälkeen SQL Power Architect on käynnistettävä uudelleen.
Avaa Connection
-valikko (1) ja siirry Database Connection Manager
-ikkunaan (2)
Valitse JDBC Drivers
(1)
Valitse palvelinalustaksi PostgreSQL
(1), lisää ajurin sisältämä JAR-paketti Add JAR
- painikkeella (2). Mahdolliset vanhat ajurit näkyvät alakentässä (3).
Valitaan dokumentaation mukaisesta hakemistosta käytössä olevaa Java
-versiota vastaava ajuri (1).
PostgreSQL ja Django
PostgreSQL-tietokannan saa Django-projektiin käyttöön seuraavasti.
- Luo Django-projektillesi PostgreSQL-tietokantaan uusi
käyttäjätunnus ja tietokanta. Esim. pgAdmin 4 -työkalulla
se onnistuu seuraavasti:
- Käyttäjän luominen löytyy kohdasta "Login/Group Roles" klikkaamalla
oikealla hiiren napilla ja valitsemalla "Create" -> "Login/Group Role..."
- Käyttäjätunnus tulee kohtaan "Name".
- Huomaa laittaa luodulle käyttäjälle myös salasana välilehdellä "Definition".
- Käyttäjän luominen löytyy kohdasta "Login/Group Roles" klikkaamalla
oikealla hiiren napilla ja valitsemalla "Create" -> "Login/Group Role..."
PostgreSQL-tietokannassa ryhmällä (group role) ei ole login
-oikeutta, mutta käyttäjällä on (1). Muista lisätä tämä ominaisuus, kun luot sovellukselle käyttäjätunnusta. Jos sovelluksen pitää pystyä luomaan tietokantoja, siihen pitää erikseen antaa luontioikeus (2).
Kun tarpeelliset tiedot on syötetty SQL
-välilehdellä näkyvät seuraavat tiedot:
- Vastaavasti tietokannan luominen kohdasta "Databases" -> oikea klikki
"Create" -> "Database..."
- Omistajaksi ("Owner") juuri luotu käyttäjä
Kun luot tietokantaa varmista, että merkkien koodaus (1) ja aakkostus (2) toimivat oikealla tavalla. Oikea aakkostus vaihtaa myös merkkilajiksi oikean Windows-merkistön:
Tietokannan luonnissa käytetyt asetukset näkyvät kokonaisuudessaan SQL
-välilehdellä. Luontiskripti on kokonaisuudessaan seuraava (Linux-käyttäjä olisi varmaan luonut tämän ilman graafista käyttöliittymää):
-- Database: djangosovellus
-- DROP DATABASE djangosovellus;
CREATE DATABASE djangosovellus
WITH
OWNER = sovelluksen_nimi
ENCODING = 'UTF8'
LC_COLLATE = 'Finnish_Finland.1252'
LC_CTYPE = 'Finnish_Finland.1252'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;
- Asenna psycopg2-ajuri Django-projektin virtuaaliympäristöön.
HUOM! Varmista, että virtuaaliympäristö on aktiivinen
eli
(venv)
näkyy komentokehotteen rivillä.pip install psycopg2
- Muokkaa Django-projektin
settings.py
-tiedostonDATABASES
-kohtaa ja vaihdadefault
-tietokannan asetuksiin seuraavat asiat:
missäDATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'localhost', 'USER': 'käyttäjänimi', 'PASSWORD': 'salasana', 'NAME': 'tietokannan-nimi', } }
käyttäjänimi
,salasana
jatietokannan-nimi
tilalle tulee tietysti oikeat arvot sen mukaan millaisen käyttäjän ja tietokannan loit kohdassa 1.
Numeeriset tietotyypit
Tietokantapalvelimia käytettäessä kannattaa muistaa, että ne tallentavat numeerista tietoa aina samassa amerikkalaisessa muodossa (desimaalierottimena piste, ei tuhaterotinta). Käyttöliittymänä toimiva sovellus tai tietokannan hallintajärjselmän ohjelmisto voi muuttaa desimaalierottimen tai tuhaterottimen kansalliseen muotoon, esim. Suomessa käytettyyn desimaalipilkkuun ja välilyöntiin tuhansien ja miljoonien välissä. Kaikki hallintasovellukset eivät tue muunnoksia lainkaan ja kannattaakin etukäteen tarkistaa, missä muodossa numeeristen arvojen pitää olla, että ne saadaan tallennettua tai tuotua tietokantaan. Seuraavassa kuvassa näkyyvät samat numeroarvot dBeaver
- ja pgAdmin 4
-ohjelman kautta.
Java-pohjainen dBeaver
käyttää suurempaa desimaalien määrää kuin tietokanta, jonka seurauksena luvun 12.3 desimaaleihin on syntynyt virhe. Ohjelma sallii myös ,
:n käyttämisen tuhaterottimena. pgAdmin 4
taas antaa virheilmoituksen, jos numerossa on mukana ,
.
Numeeriset tietotyypit on kuvattu PostgreSQL:n dokumentaatiossa https://www.postgresql.org/docs/10/datatype-numeric.html.
:warning: Micrsoft SQL Server käyttää graafisessa käyttöliittymässä kansallisia erotinmerkkejä ja merkkipohjaisessa amerikkalaista tapaa.
Query
-ikkuna on myös merkkipohjainen työkalu. Samanalisia ominaisuuksia löytyy myös monitoimittajaympäristöön tarkoitetuista hallintasovelluksista.
VSC:n PostgreSQL-laajennus
Visual Studio Code -editoriin voi lisätä laajennuksen, jolla pääsee suoraan tietokantaan ilman hallintasovellusta:
Chris Kolkmanin tekemä laajennus mahdollistaa yhteyden muodostamisen ja tietokantaobjektien selailun. Myös Microsoftin tekemän laajennuksen voi asentaa, jolloin saadaan laajempi Intellisense-tuki.
Laajennus avataan kuvakkeesta (1). Yhteys uuteen tietokantaan muodostetaan lisäyspainikkeella (2). Sen painaminen käynnistää kysymyssarjan, jossa annetaan palvelimen, tietokannan ja kirjautujan tiedot. Tietokannan objekteja voi selata hakemistopuussa (3). Klikkaamalla tietokantaa hiiren 2-painikkeella pääsee luomaan uusia kyselyitä kyselyikkunaan (4). Ne suoritetaan hiiren 2-painikkeella kyselyikkunassa (5).
Kuvan tietokantapalvelimena on paikalliseen koneeseen asennettu PostgreSQL-palvelin. Kun Visual Studio Code keskustelee samassa tieto- tai virtuaalikoneessa sijaitsevan palvelimen kanssa, käytetään palvelimen nimenä loopback IP-osoitetta 127.0.0.1
. Tätä osoitetta vastaava konenimi on localhost
, jota voi myös käyttä.