Postgresql: verschil tussen versies

Uit EekBoek
Naar navigatie springenNaar zoeken springen
(Aanpassing script)
(Toevoeging link voor FreeBSD)
 
(9 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 1: Regel 1:
= PostgreSQL =
Een van de databases waarop EekBoek gebruikt kan worden is [http://www.postgresql.org/ PostgreSQL]. PostgreSQL is een enterprise-grade, relationele database en bovendien open source. Wanneer meerdere EekBoek-gebruikers gelijktijdig met dezelfde administaties moeten kunnen werken is PostgreSQL vereist.
Een van de databases waarop EekBoek gebruikt kan worden is [http://www.postgresql.org/ PostgreSQL]. PostgreSQL is een enterprise-grade, relationele database en bovendien open source.
Hieronder staan de instructies voor installatie van PostgreSQL voor verschillende besturingssystemen.
Hieronder staan de instructies voor installatie van PostgreSQL voor verschillende besturingssystemen.
__FORCETOC__


== Waarom PostgreSQL? ==
== Waarom PostgreSQL? ==
Regel 27: Regel 28:
Zie hier voor installatie instructies: https://help.ubuntu.com/community/PostgreSQL.
Zie hier voor installatie instructies: https://help.ubuntu.com/community/PostgreSQL.
Deze pagina bevat ook instructies voor installatie van [http://www.pgadmin.org/screenshots/ PgAdmin].
Deze pagina bevat ook instructies voor installatie van [http://www.pgadmin.org/screenshots/ PgAdmin].
[placeholder voor specifieke installatie instructies].
Specifieke installatie instructies voor de installatie en het gebruik van PostgreSQL op een netwerk zie hier: [[PostgreSQL installatie op Ubuntu]].


=== Fedora ===
=== Fedora ===
[placeholder voor specifieke installatie instructies]
PostgreSQL is standaard beschikbaar onder Fedora. Indien nog niet geïnstalleerd kun je met de standaard package manager het package 'postgresql' installeren. Wil je op je systeem ook de database server draaien dan moet je tevens het package 'postgresql-server' installeren.


=== Debian ===
=== Debian ===
Regel 38: Regel 39:


=== FreeBSD ===
=== FreeBSD ===
De volgende commando's in de shell installeren postgresql versie 8.4:
Op de volgende pagina staat een procedure voor de installatie van PostgreSQL op FreeBSD: [[Platform:FreeBSD#Installatie_PostgreSQL]]
pkg_add -r postgresql84-server
 
pkg_add -r postgresql84-client
==Gebruik van PostgreSQL==
Bij het gebruik van PostgreSQL moeten enkele aspecten in de gaten worden gehouden.


Een uitgebreidere methode die aansluit bij het gebruik van EekBoek is de volgende:
De vooronderstellingen zijn:
Bewaar de volgende regels in een bestand genaamd bijvoorbeeld eekboek-pg.sh:
* De database server draait op het systeem waarop ook de client (EekBoek) draait.
  #!/bin/sh
* Indien een nieuwe administratie wordt aangemaakt wordt bovendien verondersteld dat de user die EekBoek draait het recht heeft om PostgreSQL databases aan te maken.
* De user die EekBoek draait zonder username/password heeft toegang tot de eigen databases en die toegang wordt via een netwerk connectie verschaft.
 
Deze veronderstellingen zijn eenvoudig op de command line te verifieren:
 
$ createdb mydb
$ hostname
mypc.localdomain                  <- Dit is je systeemnaam. Vul die in op de volgende regel.
$ psql -h mypc.localdomain mydb
psql (8.4.5)
  Type "help" for help.
   
   
  # This script assumes the following:
  mydb=# \q
  # - there is a user called eekboek and has a folder in /usr/home
  $ dropdb mydb
# - the eekboek dependencies have been installed successfully
 
# @todo: for educational purposes a distinction could be made between user eekboek and database eekboek
Als aan deze voorwaarden niet is voldaan moet de configuratiefile worden aangepast.
# @todo: include the creation of the file postgresql.conf in /usr/local/pgsql/data/
 
Je kunt daartoe eerst de wizard doorlopen. Na de vraag of de bestanden en de database moeten worden aangemaakt zal het foutlopen; daar even niets van aantrekken maar de wizard afbreken.
# set package source location
 
MIRROR=ftp://ftp.nl.FreeBSD.org
Open nu een terminal (command) window en ga naar de plek waar de administratieve gegevens staan. Daar vind je de files eekboek.conf, schema.dat, relaties.eb, opening.eb en mutaties.eb.
export PACKAGEROOT=$MIRROR
 
Met een editor pas je het bestand eekboek.conf aan. Het gaat om de [database] sectie:
# disable echo to protect the password
 
stty -echo
  [database]
  name = mijn_eerste_eekboek_2010
# input postgresql password for user eekboek
  driver = postgres
echo -e "Please enter password for standard user of the database server: \c"
 
  read USER_PWD
Voeg hier de benodigde gegevens toe, bijvoorbeeld:
   
 
  # restore the echo
  user = mydbaccount
stty echo
  password = mySecretDbPassword
  host = pgserver.mydomain.org
# set standard installation path
 
  target=/usr/home/eekboek
Er is nog een laatste mogelijke complicatie, namelijk dat je wel toegang hebt tot de PostgreSQL database maar deze niet zelf mag aanmaken. Vraag in dat geval de databasebeheerder of deze een database met de naam "eekboek_mijn_eerste_eekboek_2010" (dus de naam zoals in de [database] sectie is aangegeven, met daarvoor "eekboek_") wil aanmaken en zorgen dat jij het recht van gebruik hebt.
   
 
  # install postgresql
Sla het gewijzigde bestand op, en voer de volgende opdracht uit:
pkg_add -r postgresql84-server
 
pkg_add -r postgresql84-client
  $ ebshell --init
grep -q 'postgresql_enable="YES"' /etc/rc.conf || 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


# create data folder for postgresql
Het aanmaken van de database en het initialiseren van de administratie moet nu zonder problemen verlopen.
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:
Vervolgens kun je de administratie gewoon gebruiken met de GUI of CLI.
./pgsql.sh


== Tenslotte ==
== Tenslotte ==
PostgreSQL heeft een eigen licentie overeenkomst die afwijkt van die van EekBoek: http://www.postgresql.org/about/licence
PostgreSQL heeft een eigen licentie overeenkomst die afwijkt van die van EekBoek: http://www.postgresql.org/about/licence

Huidige versie van 7 jan 2012 om 10:58

Een van de databases waarop EekBoek gebruikt kan worden is PostgreSQL. PostgreSQL is een enterprise-grade, relationele database en bovendien open source. Wanneer meerdere EekBoek-gebruikers gelijktijdig met dezelfde administaties moeten kunnen werken is PostgreSQL vereist. 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. Specifieke installatie instructies voor de installatie en het gebruik van PostgreSQL op een netwerk zie hier: PostgreSQL installatie op Ubuntu.

Fedora

PostgreSQL is standaard beschikbaar onder Fedora. Indien nog niet geïnstalleerd kun je met de standaard package manager het package 'postgresql' installeren. Wil je op je systeem ook de database server draaien dan moet je tevens het package 'postgresql-server' installeren.

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

Op de volgende pagina staat een procedure voor de installatie van PostgreSQL op FreeBSD: Platform:FreeBSD#Installatie_PostgreSQL

Gebruik van PostgreSQL

Bij het gebruik van PostgreSQL moeten enkele aspecten in de gaten worden gehouden.

De vooronderstellingen zijn:

  • De database server draait op het systeem waarop ook de client (EekBoek) draait.
  • Indien een nieuwe administratie wordt aangemaakt wordt bovendien verondersteld dat de user die EekBoek draait het recht heeft om PostgreSQL databases aan te maken.
  • De user die EekBoek draait zonder username/password heeft toegang tot de eigen databases en die toegang wordt via een netwerk connectie verschaft.

Deze veronderstellingen zijn eenvoudig op de command line te verifieren:

$ createdb mydb
$ hostname
mypc.localdomain                  <- Dit is je systeemnaam. Vul die in op de volgende regel.
$ psql -h mypc.localdomain mydb
psql (8.4.5)
Type "help" for help.

mydb=# \q
$ dropdb mydb

Als aan deze voorwaarden niet is voldaan moet de configuratiefile worden aangepast.

Je kunt daartoe eerst de wizard doorlopen. Na de vraag of de bestanden en de database moeten worden aangemaakt zal het foutlopen; daar even niets van aantrekken maar de wizard afbreken.

Open nu een terminal (command) window en ga naar de plek waar de administratieve gegevens staan. Daar vind je de files eekboek.conf, schema.dat, relaties.eb, opening.eb en mutaties.eb.

Met een editor pas je het bestand eekboek.conf aan. Het gaat om de [database] sectie:

[database]
name = mijn_eerste_eekboek_2010
driver = postgres

Voeg hier de benodigde gegevens toe, bijvoorbeeld:

user = mydbaccount
password = mySecretDbPassword
host = pgserver.mydomain.org

Er is nog een laatste mogelijke complicatie, namelijk dat je wel toegang hebt tot de PostgreSQL database maar deze niet zelf mag aanmaken. Vraag in dat geval de databasebeheerder of deze een database met de naam "eekboek_mijn_eerste_eekboek_2010" (dus de naam zoals in de [database] sectie is aangegeven, met daarvoor "eekboek_") wil aanmaken en zorgen dat jij het recht van gebruik hebt.

Sla het gewijzigde bestand op, en voer de volgende opdracht uit:

$ ebshell --init

Het aanmaken van de database en het initialiseren van de administratie moet nu zonder problemen verlopen.

Vervolgens kun je de administratie gewoon gebruiken met de GUI of CLI.

Tenslotte

PostgreSQL heeft een eigen licentie overeenkomst die afwijkt van die van EekBoek: http://www.postgresql.org/about/licence