Re: Programmatic method to determine currently installed Windows PostrgreSQL version

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: Programmatic method to determine currently installed Windows PostrgreSQL version
Дата
Msg-id 6BCB9D8A16AC4241919521715F4D8BCE92E832@algol.sollentuna.se
обсуждение исходный текст
Ответ на Programmatic method to determine currently installed Windows PostrgreSQL version  (Will Wright <will4wright@yahoo.com>)
Ответы Re: Programmatic method to determine currently installed Windows PostrgreSQL version  (Will Wright <will4wright@yahoo.com>)
Список pgsql-general
> 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

В списке pgsql-general по дате отправления:

Предыдущее
От: Richard Huxton
Дата:
Сообщение: Re: Connect to a database in a .sql file
Следующее
От: Assad Jarrahian
Дата:
Сообщение: Re: Connect to a database in a .sql file