Configure Artifactory to Use PostgreSQL

JFrog Installation & Setup Documentation

Content Type
Installation & Setup

When you configure Artifactory to use PostgreSQL, all the artifact information is stored in PostgreSQL while the artifact binary data is stored in the file system (under $JFROG_HOME/artifactory/var/data/artifactory/filestore).


While it is possible to store BLOBs inside PostgreSQL we do not recommend it. This is important because the PostgreSQL driver does not support streaming BLOBs with unknown length to the database. Therefore, Artifactory temporarily saves deployed files to the filesystem and only then saves the BLOB to the database.


PostgreSQL uses tablespaces as the locations in the file system where the files representing database objects are stored. When defining a default tablespace using the default_tablespace parameter, you must either leave this parameter blank or enter the name of a tablespace you created.

Do not define a default PostgreSQL table, such as pg_default or pg_global, as the default tablespace. Doing so will generate the following exception when you try to create partitioned tables (a feature used by Artifactory since release 7.71.1):

ERROR: Cannot specify default tablespaces for partitioned relations

This behavior is by design by PostgreSQL.