Postgresql
PostgreSQL
Een van de databases waarop EekBoek gebruikt kan worden is PostgreSQL. PostgreSQL is een enterprise-grade, relationele database en bovendien open source. Hieronder staan de instructies voor installatie van PostgreSQL voor verschillende besturingssystemen.
Waarom PostgreSQL?
Eekboek is geschreven voor de volgende database engines: SQLite en PostgreSQL. Hoewel beide open source zijn, zijn er bepaalde redenen waarom voor PostgreSQL gekozen wordt:
- PostgreSQL is bevat een user access laag, waardoor verschillende gebruikers in verschillende rollen kunnen aanloggen. Hierdoor kan iemand in de rol administrator alleen gebruikers aanmaken en rechten toekennen en iemand in de rol van gebruiker alleen boekingen invoeren, maar geen gebruikers aanmaken of rechten toekennen.
- PostgreSQL is multi-user, zodat verschillende gebruikers tegelijkertijd boekingen kunnen invoeren.
- PostgreSQL is gemaakt voor rapportages en datawarehousing; anders gezegd: PostgreSQL is goed schaalbaar. Voor de meeste EekBoek gebruikers zal dit geen overweging zijn, maar PostgreSQL databases kunnen makkelijker groeien tot meer dan een paar gigabyte en blijven ook dan nog stabiel draaien.
- Als bijkomend voordeel is PostgreSQL optimaliseerbaar: door gebruik te maken van de eigenschappen van de specifieke hardware en software, kan de performance van PostgreSQL worden verhoogd.
Een aantal overwegingen om niet te kiezen voor PostgreSQL:
- PostgreSQL is een complexer produkt, waardoor meer configuratie nodig is
- PostgreSQL vereist meer administratieve handelingen
- PostgreSQL wordt niet standaard geinstalleerd op Linux en FreeBSD systemen, zoals wel het geval is bij SQLite.
Installatie van PostgreSQL
Inleiding
Kijk altijd eerst of PostgreSQL geinstalleerd is. Voer daartoe het volgende shell commando uit:
which psql
of om te zien welke versie is geinstalleerd:
psql -v
De installatie van PostgreSQL is afhankelijk van het besturingssysteem.
Ubuntu
Zie hier voor installatie instructies: https://help.ubuntu.com/community/PostgreSQL. Deze pagina bevat ook instructies voor installatie van PgAdmin. [placeholder voor specifieke installatie instructies].
Fedora
[placeholder voor specifieke installatie instructies]
Debian
De volgende procedure installeert PostgreSQL op een Debian systeem tesamen met alle package dependencies:
apt-get install postgresql postgresql-client
[placeholder voor specifieke installatie instructies]
FreeBSD
De volgende commando's in de shell installeren postgresql versie 8.4:
pkg_add -r postgresql84-server pkg_add -r postgresql84-client
Een uitgebreidere methode die aansluit bij het gebruik van EekBoek is de volgende: Bewaar de volgende regels in een bestand genaamd bijvoorbeeld eekboek-pg.sh:
#!/bin/sh # This script assumes the following: # - there is a user called eekboek and has a folder in /usr/home # - the eekboek dependencies have been installed successfully # @todo: for educational purposes a distinction could be made between user eekboek and database eekboek # set package source location MIRROR=ftp://ftp.nl.FreeBSD.org export PACKAGEROOT=$MIRROR # disable echo to protect the password stty -echo # input postgresql password for user eekboek echo -e "Please enter password for standard user of the database server: \c" read USER_PWD # restore the echo stty echo # set standard installation path target=/usr/home/eekboek # install postgresql pkg_add -r postgresql84-server pkg_add -r postgresql84-client echo 'postgresql_enable="YES"' >> /etc/rc.conf # set init flags for postgresql echo 'postgresql_initdb_flags="--encoding=utf-8 --lc-collate=C -W -A md5"' >> /etc/rc.conf mkdir /usr/local/pgsql/data chown eekboek /usr/local/pgsql/data # create users for database touch $target/install.sql echo "create user eekboek with password '$USER_PWD';" >> /root/install.sql # create script that setups postgresql and creates database eekboek touch $target/pgsql.sh # configure postgresql: database name 'eekboek' and database user 'eekboek' echo ' /usr/local/bin/initdb -D /usr/local/pgsql/data /usr/local/bin/postmaster -D /usr/local/pgsql/data echo -e "Postgresql is starting up, please wait...\n" echo -e "Press Enter to continue:\c" read INPUT_ENTER /usr/local/bin/createdb eekboek'>> $target/pgsql.sh # make the script executable chmod a+x $target/pgsql.sh
Ga tenslotte naar /usr/home/eekboek en geef het volgende commando:
./pgsql.sh
Tenslotte
PostgreSQL heeft een eigen licentie overeenkomst die afwijkt van die van EekBoek: http://www.postgresql.org/about/licence