Downloads of v 10.21.1:


Last Update:

13 May 2022

Package Maintainer(s):

Software Author(s):

  • PostgreSQL Global Development Group


foss cross-platform postgres postgresql sql relational database admin


  • 1
  • 2
  • 3

10.21.1 | Updated: 13 May 2022



Downloads of v 10.21.1:



Software Author(s):

  • PostgreSQL Global Development Group

  • 1
  • 2
  • 3
PostgreSQL 10.21.1

  • 1
  • 2
  • 3

This Package Contains an Exempted Check

Not All Tests Have Passed

Validation Testing Passed

Verification Testing Exemption:

Depends on vcredist140 which requires reboot


Scan Testing Successful:

No detections found in any package files

Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

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


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


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


Deployment Method:

📝 NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to

2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade postgresql10 -y --source="'INTERNAL REPO URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:

choco upgrade postgresql10 -y --source="'INTERNAL REPO URL'" 

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0

Exit $exitCode

- name: Install postgresql10
    name: postgresql10
    version: '10.21.1'
    state: present

See docs at

chocolatey_package 'postgresql10' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '10.21.1'

See docs at

cChocoPackageInstaller postgresql10
    Name     = "postgresql10"
    Version  = "10.21.1"
    Source   = "INTERNAL REPO URL"

Requires cChoco DSC Resource. See docs at

package { 'postgresql10':
  ensure   => '10.21.1',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',

Requires Puppet Chocolatey Provider module. See docs at

4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package was approved as a trusted package on 13 May 2022.


PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRE, developed at the University of California at Berkeley Computer Science Department. POSTGRES pioneered many concepts that only became available in some commercial database systems much later.

PostgreSQL can be used, modified, and distributed by anyone free of charge for any purpose, be it private, commercial, or academic.


Package parameters

  • /AllowRemote - Allow remote connections with username and password from all hosts by adding appropriate lines in the pg_hba.conf
  • /Password - Password to be assigned to the postgres user. If omitted, it will be generated and shown in the install output. PostgreSql installer ignores this parameter if there is existing installation.
  • /Port - Server port, if not set it defaults to 5432 or the first available port after it.
  • /NoPath - Do not add PostgreSql bin directory to the PATH.

Other parameters could be set via --ia argument, for example, to set custom components:

choco install postgresql13 --params '/Password:test /Port:5433' --ia '--enable-components server,commandlinetools'

Check all installer options by adding --help as command line argument.


  • Test installation (specify your password):
    $Env:PGPASSWORD='test'; '\conninfo' | psql -Upostgres
    This should output:
    You are connected to database "postgres" as user "postgres" on host "localhost" at port "5432"
  • This package will install PostgreSQL to $Env:ProgramFiles\PostgreSQL\[MajorVersion].
  • If you have problems during installation see troubleshooting page.
  • If you didn't specify password during setup and didn't record the generated one, you need manually reset it using the following steps:
    • Open file data\pg_hba.conf in PostgreSql installation directory
    • Change METHOD to trust and restart service with Restart-Service postgresql*
    • Execute "alter user postgres with password '[my password]';" | psql -Upostgres
    • Revert back data\pg_hba.conf to METHOD md5 and restart service
  • If you have trouble selecting specific install components see this issue

Virtual package

Each major version has its own package: postgresql<Version>

Virtual package postgresql also contains all versions that depend on adequate major version, but using it without problems require some special choco parameters.

To propagate package parameters to dependencies use --params-global choco install parameter with virtual package postgresql. Assuming latest version is 12, to provide password the following two examples result in identical installation:

cinst postgresql --params '/Password:test' --params-global
cinst postgresql12 --params '/Password:test'

To uninstall dependent package use --force-dependencies:

# The following two examples are identical
cuninst postgresql --force-dependencies
cuninst postgresql12 postgresql

# This example uninstalls only postgresql virtual package and not postgresql12
cuninst postgresql

To force reinstallation via virtual package use --force-dependencies:

# The following two examples are identical
cinst postgresql --force --force-dependencies
cinst postgresql12 --force --force-dependencies

# This will reinstall only postgresql virtual package and not its dependency postgresql12
cinst postgresql -force

# This one is different then the first one as vcredist140 dependency is not reinstalled
cinst postgresql12 --force

$ErrorActionPreference = "Stop"

$pp = Get-PackageParameters
if(!$pp.Password) {
    $pp.Password = [guid]::NewGuid().ToString("N")
    Write-Warning "You did not specify a password for the postgres user so an insecure one has been generated for you. Please change it immediately."
    Write-Warning "Generated password: $($pp.Password)"

$silentArgs = @{
    Mode                = "unattended"
    UnattendedModeUI    = "none"
    SuperPassword       = $pp.Password
    Enable_ACLedit      = 1
    Install_Runtimes    = 0
if ($pp.Port) { Write-Host "Using port: $($pp.Port)"; $silentArgs.ServerPort = $pp.Port }

$packageArgs = @{
    packageName     = $Env:ChocolateyPackageName
    fileType        = 'exe'
    url64           = ''
    checksum64      = 'A1A4ABEBE1C06319593DA43CBE63E52562A5797FD1752FC1502688C5724E6164'
    checksumType64  = 'sha256'
    url             = ''
    checksum        = ''
    checksumType32  = 'sha256'
    silentArgs      =  ($silentArgs.Keys | % { "--{0} {1}" -f $_.Tolower(), $silentArgs.$_}) -join ' '
    validExitCodes  = @(0)
    softwareName    = 'PostgreSQL 10*'
Install-ChocolateyPackage @packageArgs
Write-Host "Installation log: $Env:TEMP\install-postgresql.log"

$installLocation = Get-AppInstallLocation $packageArgs.softwareName
if (!$installLocation)  { Write-Warning "Can't find install location"; return }
Write-Host "Installed to '$installLocation'"

if (!$pp.NoPath) { Install-ChocolateyPath "$installLocation\bin" -PathType 'Machine' }

if ($pp.AllowRemote) {
    Write-Host "Allowing remote connections"
# Added by Chocolatey package
host    all             all                  md5
host    all             all             ::0/0                   md5
" | Out-File -Append "$installLocation\data\pg_hba.conf" -Encoding ascii
$ErrorActionPreference = 'Stop'

$packageName         = $Env:ChocolateyPackageName
$softwareNamePattern = 'PostgreSQL 10*'

[array] $key = Get-UninstallRegistryKey $softwareNamePattern
if ($key.Count -eq 1) {
    $key | % {
        $packageArgs = @{
            packageName            = $packageName
            silentArgs             = "--mode unattended"
            fileType               = 'EXE'
            validExitCodes         = @(0)
            file                   = $_.UninstallString.Replace('"', '')
        Uninstall-ChocolateyPackage @packageArgs
elseif ($key.Count -eq 0) {
    Write-Warning "$packageName has already been uninstalled by other means."
elseif ($key.Count -gt 1) {
    Write-Warning "$($key.Count) matches found!"
    Write-Warning "To prevent accidental data loss, no programs will be uninstalled."
    Write-Warning "Please alert package maintainer the following keys were matched:"
    $key | % {Write-Warning "- $($_.DisplayName)"}

Write-Host "Uninstallation log: $Env:TEMP\uninstall-postgresql.log"

Log in or click on link to see number of positives.

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.

Add to Builder Version Downloads Last Updated Status
PostgreSQL 10.20.2 346 Tuesday, April 19, 2022 Approved
PostgreSQL 10.20.1 606 Thursday, February 10, 2022 Approved
PostgreSQL 10.19.1 1254 Sunday, November 14, 2021 Approved
PostgreSQL 10.18.2 492 Tuesday, September 28, 2021 Exempted
PostgreSQL 10.18.1 570 Friday, August 13, 2021 Approved
PostgreSQL 10.17.2 1177 Friday, May 28, 2021 Exempted
PostgreSQL 10.17.1 587 Friday, May 14, 2021 Exempted
PostgreSQL 10.16.2 779 Friday, April 9, 2021 Approved
PostgreSQL 10.16.1 848 Friday, February 12, 2021 Approved

Discussion for the PostgreSQL Package

Ground Rules:

  • This discussion is only about PostgreSQL and the PostgreSQL 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, 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