Atlas Knowledge Base
Dashboard
Start Here

Start Here


innovative-postgresql is the one shared PostgreSQL database server per server. Every Innovative product that needs a database gets its own database inside this single instance and reads the server's address from one connection file, so there is only one database server to run, back up and troubleshoot.

You install it once per server. Product installers find it, check that it answers, and create their own database inside it. When it is missing, a product installer runs the innovative-postgresql installer as part of its own install.

What you get

  • Service name: innovative-postgresql on every platform - a Windows service with the display name Innovative PostgreSQL, or the systemd unit innovative-postgresql.service on Linux
  • PostgreSQL 17
  • Port: 5432 on a new installation, listening on this server only (localhost)
  • Every connection signs in with a password (scram-sha-256)
  • Connection file: database.json, which every product reads. It holds the host, port and version, and no passwords - each product keeps its own login

How products connect

innovative-postgresql topology: products and pgAdmin connect to the one instance on port 5432; each product has its own database

Each product reads the host and port from database.json and connects to the local innovative-postgresql service with its own login. Each product's database lives inside the same instance, beside the standard postgres maintenance database.

ItemWindowsLinux
Install folderAsked during the install. The default is the Innovative folder on the drive the package runs from, for example D:\Innovative\innovative-postgresql/opt/innovative/innovative-postgresql
PostgreSQL programs<install folder>\binInstalled from the PostgreSQL (PGDG) package repository, in the folders your distribution uses
Databases (data folder)<install folder>\data/var/lib/innovative/innovative-postgresql/data
Server settingspostgresql.conf and pg_hba.conf in the data folderpostgresql.conf and pg_hba.conf in the data folder
Connection fileC:\ProgramData\Innovative\innovative-postgresql\database.json/etc/innovative/innovative-postgresql/database.json
Registered productsconsumers.json in the connection file folderconsumers.json in the connection file folder

Only Administrators and SYSTEM (root on Linux) can change the connection file folder; other accounts can read it. The installer also copies itself into the install folder, so install.ps1 and uninstall.ps1 are still on the server after the package folder is deleted.

Installing

  1. Download innovative-postgresql.<version>.<platform>.<ext> from the Innovative PostgreSQL area of your Innovative Releases portal.
  2. Extract it into an empty folder on the server.
  3. Run the installer from that folder with administrator rights.
PlatformPackageRun it with
Windowsinnovative-postgresql.<version>.windows.zip.\install.ps1 from an elevated PowerShell window (Run as Administrator)
Linuxinnovative-postgresql.<version>.linux.tar.gz (extract with tar -xzf)sudo ./install.sh

The installer first checks whether PostgreSQL is already on the server:

  • innovative-postgresql is already installed. It is reused with its own data folder and port. The installer starts it if it is stopped, asks for its superuser password, and runs the checks.
  • Another PostgreSQL service is found, for example one installed by an older Innovative product or by the standard PostgreSQL installer. The installer shows its name, data folder and port and asks what to do: [1] adopt it in place, [2] install a separate instance on another port, or [0] stop. Adopting keeps its data folder, port and start mode and re-registers the service as innovative-postgresql. If adopting fails, the old service is registered and started again as it was.
  • Nothing is found. A new instance is installed.

On a new install the installer asks these questions, each with a default in brackets that Enter accepts:

QuestionWhat to answer
Install folderWhere the PostgreSQL programs, databases and logs go. Asked only on a new install
PostgreSQL portThe port products connect on (default 5432). A port that is already in use is refused and the question is asked again
Create the PostgreSQL superuser 'postgres' passwordPress Enter to have a strong password generated. A password you type is asked for twice
Proceed with this plan?The installer lists every change it is about to make and changes nothing until you answer yes

When the install finishes, the installer prints a Checks block with one line per check: the service is registered and running, PostgreSQL answers on its port, the superuser login works, the product database exists (when a product asked for one), the connection file is valid, the data folder exists, and the log folder is writable. A summary line counts the checks that passed, warned and failed. A successful run then prints innovative-postgresql is running with the server address, followed by RESULT: SUCCESS.

innovative-postgresql -Verify Checks block

Every run writes a log to the logs folder beside the installer, named install-<date>-<time>.log, and prints its path.

Installing without internet access

The Windows package does not contain the PostgreSQL programs. During the install it downloads the PostgreSQL 17 Windows binaries zip from get.enterprisedb.com (about 320 MB) and checks its SHA-256 hash before using it. When the download fails, the installer names the file and its download address. Download that file on another computer, copy it into the payload folder beside install.ps1, and press Enter to continue. A file already in that folder is used without a download when its hash matches; a file whose hash does not match is reported and never used.

On Linux the installer installs PostgreSQL 17 from the PostgreSQL (PGDG) apt or dnf repository, so the server needs access to that repository or to a local mirror of it.

Unattended installs

Product installers and scripts run the installer without prompts. The options most often needed:

WindowsLinuxMeaning
-Unattended--unattendedNo prompts. An answer the installer would have asked for becomes a documented exit code
-InstallRoot <folder>--install-root <folder>Install folder
-Port <n>--port <n>Port for a new install (default 5432)
-AdminPassword <password>--admin-password <password>Superuser password. On a new install without it, one is generated and shown once
-AdoptExisting--adopt-existingAdopt another PostgreSQL service found on the server. An unattended run never adopts without it
-PayloadPath <folder>--payload-path <folder>Folder holding the PostgreSQL binaries zip on a server with no internet access
-DryRun--dry-runPrint everything a real run would do, and change nothing

.\install.ps1 -Help (Linux ./install.sh --help) lists every option and changes nothing.

The superuser password

The superuser postgres is used by installers to create each product's database, and by administrators, for example to sign in with pgAdmin. A generated password is shown once and is not stored anywhere on the server - not in the connection file and not in the run log. Keep a record of it when it is shown.

When the installer asks for the password of an existing or adopted instance, you may press Enter to skip it. The install still completes and the server runs; the superuser login check is reported as not checked, and a product database that needed the password is created the next time an installer is given it.

Checking and repairing

Run the installer again on a server that already has innovative-postgresql. It reuses the instance, starts the service if it is stopped, and runs the checks again without changing your data. To also restart the service and rewrite the connection file, run .\install.ps1 -Repair (Linux sudo ./install.sh --repair). Upgrading to a newer PostgreSQL version through the installer is not available yet.

To check the instance without changing anything, run .\install.ps1 -Verify (Linux sudo ./install.sh --verify) from the install folder or from the extracted package folder. It asks no questions, prints the Checks block and its summary line, and exits with code 0 when every check passes or 12 when a check fails, including when no innovative-postgresql is installed on the server. Add -AdminPassword <password> (Linux --admin-password <password>) to include the superuser login; without it that line reads [WARN] ... was not checked. -Verify cannot be combined with -Repair or -Database; that combination stops with exit code 11.

PlatformCheck the service
WindowsGet-Service innovative-postgresql
Linuxsystemctl status innovative-postgresql

Uninstalling

Each product registers itself with innovative-postgresql when it is installed and removes its registration when it is uninstalled. The uninstaller lists the products still registered before it removes anything. At a console it asks Remove it anyway? [y/N]; an unattended run refuses and keeps the instance.

Run the uninstaller with administrator rights from the extracted package folder or from the install folder:

PlatformRemove the database serverRemove one product's registration only
Windows.\uninstall.ps1 from an elevated PowerShell window.\uninstall.ps1 -Consumer <product> -DeregisterOnly
Linuxsudo ./uninstall.shsudo ./uninstall.sh --consumer <product> --deregister-only

A full removal deletes the service, the install folder with the PostgreSQL programs (Windows), the databases in the data folder, the logs and the connection file folder. Before it starts, it lists what it is about to delete, including every database in the data folder, and asks you to type the service name innovative-postgresql to confirm; anything else stops the uninstall with nothing removed. To keep the databases, add -KeepData (Linux --keep-data); a later install into the same folder reuses them. The data of an adopted instance, and a data folder outside the install folder, are always kept.

Back up any database you need before uninstalling. Innovative PostgreSQL pgAdmin describes a manual backup.

Every uninstall writes uninstall-<date>-<time>.log to the logs folder beside the uninstaller, or to the temp folder when it runs from the install folder it is removing, and prints its path.

If something goes wrong

When a step fails, the installer says what failed, why and what to do next before it stops, and prints the path of its run log. Common failures, their fixes and the installer exit codes are on Innovative PostgreSQL Troubleshooting. Quote the run log when you contact support.



Was this helpful?