Eekboek met PostgreSQL op localhost: verschil tussen versies

Uit EekBoek
Naar navigatie springenNaar zoeken springen
 
(26 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 1: Regel 1:
Deze handleiding gaat over de stand-alone installatie van Eekboek met PostgreSQL op een PC. De handleiding is niet specifiek voor een bepaald platform en is daarom enigszins algemeen. Deze handleiding is nog in ontwikkeling en zeker niet volledig. Kritiek en succesverhalen zijn welkom op paul@vandervlis.nl.
Deze handleiding gaat over de stand-alone installatie van Eekboek met PostgreSQL op een PC. De handleiding is niet specifiek voor een bepaald platform en is daarom enigszins algemeen. Deze handleiding is nog in ontwikkeling en zeker niet volledig. Kritiek en succesverhalen zijn welkom op paul@vandervlis.nl.


=== Installatie van PostgreSQL ===
=== PostgreSQL ===
PostgreSQL wordt niet standaard bij EekBoek geleverd, maar het zit wel in de meeste Linux distributies en voor de meeste andere platformen is het gratis te downloaden via  http://www.postgresql.org/ . Er zijn Windows, Mac, Linux, FreeBSD en Solaris versies.  
PostgreSQL wordt niet standaard bij EekBoek geleverd, maar het zit wel in de meeste Linux distributies en voor de meeste andere platformen is het gratis te downloaden via  http://www.postgresql.org/ . Er zijn Windows, Mac, Linux, FreeBSD en Solaris versies. De installatie spreekt vrij voor zich, ik hield de defaults aan.


=== PGadmin ===
Onder Windows kwam ik aan het eind nog een vraag tegen over het starten van "Stack Builder" waarmee je verdere zaken kunt downloaden. Omdat dat niet nodig was heb ik het weg geklikt.
Daarnaast is er een grafisch programma "pgadmin", wat op sommige platformen (b.v. Windows, Mac) automatisch wordt meegeinstalleerd met PostgreSQL, op andere platformen is het een keuze (b.v. Linux). Bij Windows raad ik het gebruik van dit programma aan.
 
=== PGadmin3 ===
Daarnaast is er een grafisch programma [http://www.pgadmin.org/ PGadmin3], wat op sommige platformen (b.v. Windows, Mac) automatisch wordt meegeinstalleerd met PostgreSQL, op andere platformen is het een keuze (b.v. Linux). Voor Linux is het niet nodig dit programma te installeren, maar uiteraard kan het wel. Het is daar echter niet altijd zomaar "klaar voor gebruik".


=== Database role aanmaken ===
=== Database role aanmaken ===
In PostgreSQL moet een "role" aangemaakt worden, dat is een user in PostgreSQL termen. Dit moet gedaan worden door de administratieve user van PostgreSQL, normaal heet deze "postgres".
In PostgreSQL moet een "role" aangemaakt worden, dat is een user in PostgreSQL termen. Dit moet gedaan worden door de administratieve user van PostgreSQL, normaal heet deze "postgres". Onder Linux kun je dit het beste op de commandline doen omdat de gebruiker postgres daar meestal geen paswoord heeft, onder Windows kun je het beste PGadmin3 gebruiken.
 
Het gemakkelijkste is om een role aan te maken met dezelfde naam als je login-naam. Je kunt ook kiezen voor een meer generieke naam, b.v. "ebuser", een naam die we ook gebruiken in de netwerkinstallatie. Default wordt uitgegaan van je login-naam, een andere naam moet specifiek worden opgegeven in Eekboek.
 
==== Op de commandline ====
In Linux/Unix kun je op de commandline user "postgres" worden met een commando als "sudo su postgres" of "su progres". Het aanmaken van de role gaat met een commando als
createuser -P piet
* Dit vraagt eerst om het wachtwoord, kies een wachtwoord.
* Dan of de nieuwe role een superuser moet zijn, daarop antwoord je "nee".
* Dan of de nieuwe role nieuwe databases mag aanmaken, daarop antwoord je "ja".
* Dan of de nieuwe role nieuwe roles mag aanmaken, daarop antwoord je "nee".
 
Meer informatie over het "createuser" commando is [http://www.postgresql.org/docs/8.4/static/app-createuser.html hier te vinden].
 
====  Met PGadmin3 ====
Bij Windows/Mac wordt er een programma PGadmin3 meegeleverd waarmee je een user kunt aanmaken. Eerst moet je als user "postgres" verbinden met postgresql op localhost, ik deed dit door op "servers" te klikken, toen kwam "postgresql 9.0 op localhost" te voorschijn en daarop heb ik geklikt. Om te connecten heb je een paswoord nodig voor de user postgres die je tijdens de installatie hebt opgegeven.
 
In de versie die ik bekeken heb kon ik hier een user aanmaken:
edit | new object | new login role
 
Let er op dat de nieuwe user databases moet kunnen aanmaken, dat kun je in een tabblad instellen.


In Linux/Unix kun je op de commandline user "postgres" worden met een commando als "sudo su postgres" of "su progres". Het aanmaken van de role gaat hier met een commando als "createuser piet". Hiermee maak je een role "piet" aan. Ik adviseer als naam je loginnaam te gebruiken, dat is het eenvoudigste. Hij vraagt of de nieuwe role een superuser moet zijn, daarop antwoord je "nee". Hij vraagt of de nieuwe role nieuwe databases mag aanmaken, daarop antwoord je "ja". Als laatste vraagt hij of de nieuwe role nieuwe roles mag aanmaken, daarop antwoord je "nee". Uiteraard vraagt hij nog om een paswoord voor de nieuwe user en dan is de role klaar. Hier is meer informatie te vinden over het "createuser" commando: http://www.postgresql.org/docs/8.4/static/app-createuser.html
=== Eekboek configureren ===
Allereerst moet Eekboek worden geinstalleerd, zie daarvoor de platform specifieke pagina's op deze wiki. De nieuwe versie van Eekboek die op dit moment in GIT zit kan op een comfortabeler manier worden ingsteld dan de oudere versie. Daarom twee mogelijkheden. Waarschuwing: als je een administratie aanmaakt waarvan de naam al bestaat in PostgreSQL, en je hebt de database ingericht zoals op deze pagina beschreven, dan wordt de oude administratie overschreven.


Bij Windows/Mac wordt er een programma PGAdmin meegeleverd waarmee je gemakkelijk een user kunt aanmaken nadat je verbonden bent als user "postgres" met postgresql op localhost. Je moet "edit | new object | new login role" doen. Let er op dat de nieuwe user databases moet kunnen aanmaken, dat kun je in een tabblad instellen. Ook voor Linux is dit programma beschikbaar.
==== Nieuwe versie (2.02.00 en hoger) van Eekboek configureren ====
In de wizard geef je aan een nieuwe database te willen maken van het type "postgresql". Je kunt eigenlijk alle instellingen op "--standaard--" laten staan, afgezien van het paswoord. Indien de naam van de role anders is als je gebruikersnaam, dan moet je deze wel opgeven. Bij het afronden van de wizard wordt de database op de server aangemaakt.


=== Nieuwe versie van Eekboek configureren ===
Stanaard maakt Eekboek een locale connectie via Unix sockets. Bij Windows wordt TCP op poort 5432 gebruikt.
Deze paragraaf gaat over de ontwikkelversie van EekBoek die op dit moment alleen nog maar beschikbaar is via Git. Na installatie van Eekboek (zie platform specifieke pagina's) kan Eekboek worden gestart. In de wizard geef je aan een nieuwe database te willen maken van het type "postgresql". Je kunt alle instellingen op "--standaard--" laten staan, afgezien van het paswoord. De standaard host is localhost, de standaard username is je loginnaam, standaard wordt er Unix sockets gebruikt als het OS dat ondersteund (dus geen poort), en anders (bij Windows) TCP op poort 5432. Bij het afronden van de wizard wordt de database op de server aangemaakt.


=== Oudere versie van Eekboek configureren ===
==== Oudere versie van Eekboek configureren ====
Na installatie van Eekboek (zie platform specifieke pagina's) kan Eekboek worden gestart. In de wizard geef je aan een nieuwe database te willen maken van het type "postgresql". Het aanmaken van de administratie zal normaal mislukken vanwege het ontbreken van het paswoord. Hier moeten de gegevens met de hand in het configfile worden gezet.  
Na installatie van Eekboek (zie platform specifieke pagina's) kan Eekboek worden gestart. In de wizard geef je aan een nieuwe database te willen maken van het type "postgresql". Het aanmaken van de administratie zal normaal mislukken vanwege het ontbreken van het paswoord. Hier moeten de gegevens met de hand in het configfile worden gezet.  


Normaal worden de configfiles opgeslagen in een directory ~/.eekboek/admdir/naam/eekboek.conf of C:\documents and settings\user\eekboek\admdir\naam\eekboek.conf (zoek eventueel op "admdir"). Hierin moet dan iets dergelijks komen te staan:
Normaal worden de configfiles opgeslagen in een directory /home/user/.eekboek/admdir/naam/eekboek.conf of C:\documents and settings\user\eekboek\admdir\naam\eekboek.conf (zoek eventueel op "admdir"). Hierin moet dan iets dergelijks komen te staan:


  [database]
  [database]
Regel 32: Regel 55:
Hierna kan de database vanuit deze directory op de commandline worden aangemaakt en ingericht met:  
Hierna kan de database vanuit deze directory op de commandline worden aangemaakt en ingericht met:  
  ebshell --init
  ebshell --init
=== Bij problemen ===
Bovenstaande setup gaat er van uit dat er bij een Linux/Unix systeem in het bestand pg_hba.conf van PostgreSQL een regel staat als onderstaand:
local  all  all    ident
En bij een Windows systeem dit:
host  all  all 127.0.0.1/32  md5 
Dit zorgt ervoor dat je vanaf localhost kunt inloggen met een geldige username en paswoord.
Uiteraard is het mogelijk pg_hba.conf aan te passen. Bij ieder operating systeem en versie van PostgreSQL staat het weer ergens anders, dus ik raad je aan er even naar te zoeken. Meer informatie over pg_hba.conf is [http://www.postgresql.org/docs/8.4/interactive/auth-pg-hba-conf.html hier te vinden].


=== Resultaat ===
=== Resultaat ===
Het resultaat is een Eekboek die zijn gegevens opslaat in PostgreSQL.
Het resultaat is een Eekboek die zijn gegevens opslaat in PostgreSQL.

Huidige versie van 7 okt 2012 om 13:29

Deze handleiding gaat over de stand-alone installatie van Eekboek met PostgreSQL op een PC. De handleiding is niet specifiek voor een bepaald platform en is daarom enigszins algemeen. Deze handleiding is nog in ontwikkeling en zeker niet volledig. Kritiek en succesverhalen zijn welkom op paul@vandervlis.nl.

PostgreSQL

PostgreSQL wordt niet standaard bij EekBoek geleverd, maar het zit wel in de meeste Linux distributies en voor de meeste andere platformen is het gratis te downloaden via http://www.postgresql.org/ . Er zijn Windows, Mac, Linux, FreeBSD en Solaris versies. De installatie spreekt vrij voor zich, ik hield de defaults aan.

Onder Windows kwam ik aan het eind nog een vraag tegen over het starten van "Stack Builder" waarmee je verdere zaken kunt downloaden. Omdat dat niet nodig was heb ik het weg geklikt.

PGadmin3

Daarnaast is er een grafisch programma PGadmin3, wat op sommige platformen (b.v. Windows, Mac) automatisch wordt meegeinstalleerd met PostgreSQL, op andere platformen is het een keuze (b.v. Linux). Voor Linux is het niet nodig dit programma te installeren, maar uiteraard kan het wel. Het is daar echter niet altijd zomaar "klaar voor gebruik".

Database role aanmaken

In PostgreSQL moet een "role" aangemaakt worden, dat is een user in PostgreSQL termen. Dit moet gedaan worden door de administratieve user van PostgreSQL, normaal heet deze "postgres". Onder Linux kun je dit het beste op de commandline doen omdat de gebruiker postgres daar meestal geen paswoord heeft, onder Windows kun je het beste PGadmin3 gebruiken.

Het gemakkelijkste is om een role aan te maken met dezelfde naam als je login-naam. Je kunt ook kiezen voor een meer generieke naam, b.v. "ebuser", een naam die we ook gebruiken in de netwerkinstallatie. Default wordt uitgegaan van je login-naam, een andere naam moet specifiek worden opgegeven in Eekboek.

Op de commandline

In Linux/Unix kun je op de commandline user "postgres" worden met een commando als "sudo su postgres" of "su progres". Het aanmaken van de role gaat met een commando als

createuser -P piet 
  • Dit vraagt eerst om het wachtwoord, kies een wachtwoord.
  • Dan of de nieuwe role een superuser moet zijn, daarop antwoord je "nee".
  • Dan of de nieuwe role nieuwe databases mag aanmaken, daarop antwoord je "ja".
  • Dan of de nieuwe role nieuwe roles mag aanmaken, daarop antwoord je "nee".

Meer informatie over het "createuser" commando is hier te vinden.

Met PGadmin3

Bij Windows/Mac wordt er een programma PGadmin3 meegeleverd waarmee je een user kunt aanmaken. Eerst moet je als user "postgres" verbinden met postgresql op localhost, ik deed dit door op "servers" te klikken, toen kwam "postgresql 9.0 op localhost" te voorschijn en daarop heb ik geklikt. Om te connecten heb je een paswoord nodig voor de user postgres die je tijdens de installatie hebt opgegeven.

In de versie die ik bekeken heb kon ik hier een user aanmaken:

edit | new object | new login role

Let er op dat de nieuwe user databases moet kunnen aanmaken, dat kun je in een tabblad instellen.

Eekboek configureren

Allereerst moet Eekboek worden geinstalleerd, zie daarvoor de platform specifieke pagina's op deze wiki. De nieuwe versie van Eekboek die op dit moment in GIT zit kan op een comfortabeler manier worden ingsteld dan de oudere versie. Daarom twee mogelijkheden. Waarschuwing: als je een administratie aanmaakt waarvan de naam al bestaat in PostgreSQL, en je hebt de database ingericht zoals op deze pagina beschreven, dan wordt de oude administratie overschreven.

Nieuwe versie (2.02.00 en hoger) van Eekboek configureren

In de wizard geef je aan een nieuwe database te willen maken van het type "postgresql". Je kunt eigenlijk alle instellingen op "--standaard--" laten staan, afgezien van het paswoord. Indien de naam van de role anders is als je gebruikersnaam, dan moet je deze wel opgeven. Bij het afronden van de wizard wordt de database op de server aangemaakt.

Stanaard maakt Eekboek een locale connectie via Unix sockets. Bij Windows wordt TCP op poort 5432 gebruikt.

Oudere versie van Eekboek configureren

Na installatie van Eekboek (zie platform specifieke pagina's) kan Eekboek worden gestart. In de wizard geef je aan een nieuwe database te willen maken van het type "postgresql". Het aanmaken van de administratie zal normaal mislukken vanwege het ontbreken van het paswoord. Hier moeten de gegevens met de hand in het configfile worden gezet.

Normaal worden de configfiles opgeslagen in een directory /home/user/.eekboek/admdir/naam/eekboek.conf of C:\documents and settings\user\eekboek\admdir\naam\eekboek.conf (zoek eventueel op "admdir"). Hierin moet dan iets dergelijks komen te staan:

[database]
name       = boekhouding_2010
driver     = postgres
user       = piet
password   = eekboek

De regel met "user" kan ook worden weggelaten.

Hierna kan de database vanuit deze directory op de commandline worden aangemaakt en ingericht met:

ebshell --init

Bij problemen

Bovenstaande setup gaat er van uit dat er bij een Linux/Unix systeem in het bestand pg_hba.conf van PostgreSQL een regel staat als onderstaand:

local  all  all    ident

En bij een Windows systeem dit:

host  all  all 127.0.0.1/32  md5  

Dit zorgt ervoor dat je vanaf localhost kunt inloggen met een geldige username en paswoord.

Uiteraard is het mogelijk pg_hba.conf aan te passen. Bij ieder operating systeem en versie van PostgreSQL staat het weer ergens anders, dus ik raad je aan er even naar te zoeken. Meer informatie over pg_hba.conf is hier te vinden.

Resultaat

Het resultaat is een Eekboek die zijn gegevens opslaat in PostgreSQL.