
# li.strolch.persistence.postgresql

[![Build Status](http://jenkins.eitchnet.ch/buildStatus/icon?job=li.strolch.persistence.postgresql)](http://jenkins.eitchnet.ch/view/strolch/job/li.strolch.persistence.postgresql/)

PostgreSQL Persistence Implementation for Strolch

# Setup
1.	Install PostgreSQL version with at least version 9.1:
$ sudo aptitude install postgresql postgresql-client

2.	Set a password for user 'postgres'
$ sudo -u postgres psql postgres
$ postgres=# 
\password postgres

3.	Create the user and DB:
$ sudo -u postgres psql
$ postgres=# 
create user testuser with password 'test';
create database testdb;
GRANT ALL PRIVILEGES ON DATABASE testdb to testuser;
GRANT CONNECT ON DATABASE testdb TO testuser ;
   
# For tests:
create user testuser with password 'test';
create database testdb;
GRANT ALL PRIVILEGES ON DATABASE testdb to testuser;
GRANT CONNECT ON DATABASE testdb TO testuser ;

create user testuser1 with password 'test';
create database testdb1;
GRANT ALL PRIVILEGES ON DATABASE testdb1 to testuser1;
GRANT CONNECT ON DATABASE testdb1 TO testuser1 ;

create user testuser2 with password 'test';
create database testdb2;
GRANT ALL PRIVILEGES ON DATABASE testdb2 to testuser2;
GRANT CONNECT ON DATABASE testdb2 TO testuser2 ;

4.	Added new component, setting properties for PostgreSQL DB:

	<Component>
		<name>PersistenceHandler</name>
		<api>li.strolch.persistence.api.StrolchPersistenceHandler</api>
		<impl>li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler</impl>
		<Properties>
			<allowSchemaCreation>false</allowSchemaCreation>
			<db.url>jdbc:postgresql://localhost/testdb</db.url>
			<db.username>testUser</db.username>
			<db.password>test</db.password>
		</Properties>
	</Component>` 

5.	Create tables, or allow strolch to due it for you.


# Appendix
1.	To drop the user and DB:
$ sudo -u postgres psql postgres
$ postgres=# 
revoke ALL PRIVILEGES ON DATABASE testdb from testuser;
drop user testuser;
drop database testdb;

2.	Create a database:
$ createdb -p 5432 -O drupal -U drupal -E UTF8 testingsiteone -T template0

3.	Dropping the database
$ dropdb -p 5432 -U drupal testingsiteone

4.	Dumping the database
$ pg_dump -p 5432 -h localhost -Fc -U drupal --no-owner testingsiteone > /tmp/testingsiteone_$(date +"%Y-%m-%d_%s").pgdump

5.	Restoring the database
$ pg_restore -p 5432 -h localhost -Fc -d testingsiteone -U drupal --no-owner < /tmp/path-to-the-file.pgdump


# References
http://www.pixelite.co.nz/article/installing-and-configuring-postgresql-91-ubuntu-1204-local-drupal-development
