Search Postgresql Archives

Re: Programmatic method to determine currently installed Windows PostrgreSQL version

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\{317D0ED1
> > > -8845-40DD-A028-0A3EB8E24F2E}
> > > "Version"="8.1-beta4" 
> > > 
> > > So it looks like the version number is underneath
> > a key that
> > > changes with every new version (new Product
> > number).  And I
> > > am therefore not sure if I can use this knowledge
> > to identify
> > > the installed version.
> > 
> > It changes once for each major version, meaning there is 
> one for 8.0 
> > and 8.1. The whole 8.0.x series share the same id, as will 
> the whole 
> > 8.1 series (at least that's the plan). It basically changes when 
> > initdb is required to upgrade, which is why it also changes between 
> > betas.
> > 
> > You can safely rely on these once you've seen the ones for 
> a release.
> > For example, don't use the beta4 one, wait for the
> > 8.1 release one.
> > 
> > 
> > > Does anyone have a better idea for a more reliable
> > 
> > > identification method?
> > 
> > Using these registry keys will reliably identify any PostgreSQL 
> > installations done using the MSI installer - it won't pick up any 
> > other install methods. For those, you could either search the 
> > filesystem, or attempt a connect to the default port etc - 
> but I think 
> > those would either be too slow or a lot less reliable.
> 
> Hi Magnus, thanks for the quick response. 
> Unfortunately I still have an issue with this regsitry 
> identification method because I'd like to code my installer 
> so that it can also identify the postreSQL versions that were 
> not available at the time I authored my install check, i.e. 
> future versions.  
> 
> In essence I know that my product works with PostrgeSQL 8.0 
> and 8.1 and it my guees is that it will continue to work with 
> future PostgreSQL versions.  So I'd like my installer to be 
> able to check that 8.0 or above is installed.

To do this, enumerate the keys under PostgreSQL\Installations. You can
count on future versions to register there with a different GUID - so if
you enumerate everything that's there, you can look at the Version value
to see the actual version.


//Magnus

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your
       message can get through to the mailing list cleanly


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux