Follow these instuctions:
- Download and install
- Download the appropriate WEB-INF/lib) . You can also download it directly from the and copy the JAR into your container's common lib directory or in the XWiki webapp (in
- Start PostgreSQL
- On Mac you could issue the following shell commands to start/stop PostgreSQL 9.1 (adapt to your version and to your setup):sudo -u postgres /Library/PostgreSQL/9.1/bin/pg_ctl start -D /Library/PostgreSQL/9.1/data
sudo -u postgres /Library/PostgreSQL/9.1/bin/pg_ctl stop -D /Library/PostgreSQL/9.1/data
- On Mac you could issue the following shell commands to start/stop PostgreSQL 9.1 (adapt to your version and to your setup):
- Create the xwiki user and the xwiki database:
- Using the psql tool:
In a shell, start the PostgreSQL interactive terminal: psql -U <replace_with_your_admin_user_eg_postgres>
Create the xwiki database:CREATE DATABASE xwiki
WITH OWNER = <replace_with_your_admin_user_eg_postgres>
ENCODING = 'UNICODE'
TABLESPACE = pg_default;
Verify that the xwiki database is listed in the available databases: \l
Connect to the xwiki database: \connect xwiki
Create a xwiki user: CREATE USER xwiki PASSWORD 'xwiki' VALID UNTIL 'infinity';
Verify that the xwiki user is listed in the available users: \du
Give all the permissions to the xwiki user: GRANT ALL ON SCHEMA public TO xwiki;
- Using the createuser and createdb programs:
Create the xwiki user: createuser xwiki -S -D -R -P -Upostgres
Create the xwiki database: createdb xwiki -Eunicode -Oxwiki -Upostgres
Note that if you need to remove this DB at some point you can issue:dropdb -Upostgres xwiki
- Using the psql tool:
- Tell XWiki to use this database. To do this, edit the WEB-INF/hibernate.cfg.xml file where you have expanded the XWiki WAR file and uncomment the PostgreSQL part. Make sure to review the connection.url property. For example a typical value would be:<property name="connection.url">jdbc:postgresql://localhost:5432/xwiki</property>
Prior to XWiki 4.5M1, multiwiki mode was not fully working on PostgreSQL. Since XWiki 4.5M1, we've made it work in schema mode (i.e. a subwiki is represented as a Schema in the database). However it's not working in database mode for the moment (i.e. a subwiki is represented as a Catalog in the database) because the PostGreSQL JDBC Driver doesn't support yet the setCatalog method.
The mode used is controlled by a property in hibernate.cfg.xml:
In several cases, for example when rolling back a document to a previous version, your postgres log will show something similar:
2013-04-03 18:44:36 EEST HINT: Consider increasing the configuration parameter "checkpoint_segments".
2013-04-03 18:46:05 EEST LOG: checkpoints are occurring too frequently (6 seconds apart)
2013-04-03 18:46:05 EEST HINT: Consider increasing the configuration parameter "checkpoint_segments".
This can result in slow DB performance. If using a production environment, you must set the "checkpoint_segments" parameter from your PostgreSQL configuration.
More links related to this:
Method org.postgresql.jdbc4.Jdbc4Connection.isValid(int) is not yet implemented
Versions of the Postgres JDBC driver older than 9.2 do not support that method. Try to update the postgresql-*.jar
- if installed from debian package, try to update at least to the version from jessy
- for example download from
- then use dpkg --install libpostgresql-jdbc-java_9.2-1002-1_all.deb to install
- alternatively if you use tomcat8, try downgrading to tomcat7
- otherwise find the postgresql-*.jar in your webapp and replace it by a newer version downloaded from
Restart the server to apply the changes.