Notices: This section not yet converted to new layout. Download stats are rolling back out.

This is a prerelease version of PostgreSQL 9.4.

PostgreSQL 9.4

Package test results are pending

This package is exempt from moderation. While it is likely safe for you, there is more risk involved.

This package installs PostgreSQL 9.4. The creation of a package dedicated to the release version matches the distribution methodology employed by EnterpriseDB on Linux, and thus protecting against unwanted or unexpected upgrades.

Installs to %ChocolateyBinRoot%\postgresql9
By default %ChocolateyBinRoot% is C:\tools

Creates the user: postgresql with password: Postgres-1234
Creates, and starts, a Windows Service for PostgreSQL named: postgresql94

This release forked from the PostgreSQL package ( by FerventCoder (

To install PostgreSQL 9.4, run the following command from the command line or from PowerShell:

C:\> choco install postgresql9 --version --pre

To upgrade PostgreSQL 9.4, run the following command from the command line or from PowerShell:

C:\> choco upgrade postgresql9 --version --pre


  • postgresql_server.svg
  • postgresql_server94.png
  • Show
    ## Installs PostgreSQL for Windows from EnterpriseDB
    ## Installer Includes pgAdminIII
    ## Install Location, Service, and User
    * Installs to **%ChocolateyBinRoot%\postgresql94**
    * By default %ChocolateyBinRoot% is C:\tools
    * Creates the user: **postgresql** with password: **Postgres-1234**
    * Creates, and starts, a Windows Service for PostgreSQL named: **postgresql94**
    ## Service Control
    * Run these commands from an elevated shell prompt
    ### Start the Service
    net start PostgreSQL
    ### Stop the Service
    net stop PostgreSQL
    ### Delete (remove) the Service
    * **The Program Uninstaller will complain about the missing Service when you uninstall PostgreSQL, but you can safely ignore the warning.**
    sc delete PostgreSQL
    ## Package name
    * The **postgresql94** package name was chosen to mirror the **postgresql94** package name on RHEL Linux:
    ## This version was originally forked from ferventcoder
    * ***On***
    * ***On GitHub:***
  • tools\chocolateyInstall.ps1 Show
    try { 
      $toolsDir ="$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
      Start-ChocolateyProcessAsAdmin "& $($toolsDir)\installpostgre.ps1"
      Write-ChocolateySuccess 'postgresql'
    } catch {
      Write-ChocolateyFailure 'postgresql' "$($_.Exception.Message)"
  • tools\installpostgre.ps1 Show
    # 9.1.1-1
    # $postgresql_exe_url64 = ''
    # $postgresql_exe_url32 = ''
    # 9.2.1-1
    # $postgresql_exe_url64 = ''
    # $postgresql_exe_url32 = ''
    # 9.3.5-1
    # $postgresql_exe_url64 = ''
    # $postgresql_exe_url32 = ''
    # 9.4.0-1
    $postgresql_exe_url64 = ''
    $postgresql_exe_url32 = ''
    $postgrePath        = "$(Get-BinRoot)\postgresql9"
    $postgreAccount     = 'postgresql'
    $postgrePassword    = 'Postgres-1234'
    $postgreServiceName = 'postgresql9'
    Write-Host "PostgreSQL Install Path:....... $postgrePath"
    Write-Host "PostgreSQL Install Account....: $postgreAccount"
    Write-Host "PostgreSQL Install Password...: $postgrePassword"
    Write-Host "PostgreSQL Install ServiceName: $postgreServiceName"
    try {
      Write-Host "Deleting and recreating $postgreAccount windows account..."
      try {
        net user $postgreAccount /delete
      } catch {
        Write-Host "Cannot delete user. User $postgreAccount doesn`'t exist. Which is perfectly fine, it will be created in the next step."
      $localUser = ([ADSI]"WinNT://$env:computername").Create("User", $postgreAccount)
      try {
        $localUserPath = "WinNT://$env:computername/$postgreAccount"
        $computer      = [ADSI]("WinNT://$env:computername,computer")
        $localGroup    = $computer.PSBase.Children.Find("Users")
        $sysInfo       = Get-WmiObject -Class Win32_ComputerSystem 
        $workGroup     = $sysInfo.Workgroup
        if ($localGroup.PSBase.Path -like 'WinNT://' + $workGroup + '*') {
          $localUserPath = "WinNT://$workGroup/$env:computername/$postgreAccount"
        if ($localGroup.PSBase.Invoke("IsMember",$localUserPath)) {
      } catch {
        write-host "Removing $postgreAccount from Users failed. Please do that manually"
        start-sleep 5
      Write-Host "The account $postgreAccount has been created with the password set to $postgrePassword. Please change the password for the $postgreAccount account and update the services to that password"
      Start-Sleep 4
      Write-Host "Creating $postgrePath folder for installation if it doesn`'t exist"
      if (![System.IO.Directory]::Exists($postgrePath)) {[System.IO.Directory]::CreateDirectory($postgrePath)}
      Write-Host "Setting folder permissions on $postgrePath to full control for user postgres"
      $acl = Get-Acl $postgrePath
      $acl.SetAccessRuleProtection($True, $True)
      $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$postgreAccount","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow");
      Set-Acl $postgrePath $acl
      $installArgs = "--mode unattended --prefix $postgrePath --datadir $($postgrePath)\data --servicename $postgreServiceName --superaccount $postgreAccount --superpassword $postgrePassword --serviceaccount $postgreAccount"
      Install-ChocolateyPackage 'postgresql' 'exe' "$installArgs" "$postgresql_exe_url" "$postgresql_exe_url64"
      Install-ChocolateyPath "$($postgrePath)\bin"
      Write-ChocolateySuccess 'postgresql'
    } catch {
      Write-ChocolateyFailure 'postgresql' "$($_.Exception.Message)"

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.


This package has no dependencies.

Package Maintainer(s)

Software Author(s)

  • pgsql developers


Version History

Version Downloads Last updated Status
PostgreSQL 208 Wednesday, June 6, 2018 approved
PostgreSQL 95 Tuesday, May 22, 2018 approved
PostgreSQL 9.4 240 Monday, February 15, 2016 exempted

Discussion for the PostgreSQL 9.4 Package

Ground rules:

  • This discussion is only about PostgreSQL 9.4 and the PostgreSQL 9.4 package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or PostgreSQL 9.4, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus uses cookies to enhance the user experience of the site.