Обсуждение: Why Hard-Coded Version 9.1 In Names?

Поиск
Список
Период
Сортировка

Why Hard-Coded Version 9.1 In Names?

От
Jerry Richards
Дата:

I just installed postgreSQL 9.1 and noticed it hard-codes the folder /var/lib/pgsql/9.1 and it hard-codes the service name to be postgresql91.  My previous version of 8.4.4 uses the generic folder /var/lib/pgsql/data and the generic service name postgresql.  This causes a problem for me because I have a lot of tools and software that uses the old path and name.

 

Why is the hard-coded version included in the naming?  Is there some install method to keep it using the generic names?

 

Thanks,

Jerry

Re: Why Hard-Coded Version 9.1 In Names?

От
Scott Marlowe
Дата:
On Mon, Jan 30, 2012 at 3:41 PM, Jerry Richards
<jerry.richards@teotech.com> wrote:
> I just installed postgreSQL 9.1 and noticed it hard-codes the folder
> /var/lib/pgsql/9.1 and it hard-codes the service name to be postgresql91.
> My previous version of 8.4.4 uses the generic folder /var/lib/pgsql/data and
> the generic service name postgresql.  This causes a problem for me because I
> have a lot of tools and software that uses the old path and name.
>
>
>
> Why is the hard-coded version included in the naming?  Is there some install
> method to keep it using the generic names?

It's to allow > 1 version to be installed at once.

Re: Why Hard-Coded Version 9.1 In Names?

От
Marti Raudsepp
Дата:
On Tue, Jan 31, 2012 at 00:41, Jerry Richards
<jerry.richards@teotech.com> wrote:
> I just installed postgreSQL 9.1 and noticed it hard-codes the folder
> /var/lib/pgsql/9.1 and it hard-codes the service name to be postgresql91.

> Why is the hard-coded version included in the naming?

Note that this is done by Linux distributions, vanilla PostgreSQL
doesn't use version-specific paths.

The reason is that the PostgreSQL on-disk format is not
forward-compatible. In order to upgrade from one Postgres version to
the next, you need to have *both* versions installed at once. As
annoying as it is, version-specific paths is a pretty foolproof way to
enable that.

Regards,
Marti

Re: Why Hard-Coded Version 9.1 In Names?

От
Bobby Dewitt
Дата:
We get around this issue by creating a symbolic link called "current" that
points to the version of Postgres that we want our servers to use by
default:

ln -s /var/lib/pgsql/9.1 /var/lib/pgsql/current

The symbolic link is changed whenever we do an upgrade so it doesn't
interfere with anything that we may already have configured.

Thanks,
Bobby

On 1/31/12 8:14 AM, "Marti Raudsepp" <marti@juffo.org> wrote:

>On Tue, Jan 31, 2012 at 00:41, Jerry Richards
><jerry.richards@teotech.com> wrote:
>> I just installed postgreSQL 9.1 and noticed it hard-codes the folder
>> /var/lib/pgsql/9.1 and it hard-codes the service name to be
>>postgresql91.
>
>> Why is the hard-coded version included in the naming?
>
>Note that this is done by Linux distributions, vanilla PostgreSQL
>doesn't use version-specific paths.
>
>The reason is that the PostgreSQL on-disk format is not
>forward-compatible. In order to upgrade from one Postgres version to
>the next, you need to have *both* versions installed at once. As
>annoying as it is, version-specific paths is a pretty foolproof way to
>enable that.
>
>Regards,
>Marti


Re: Why Hard-Coded Version 9.1 In Names?

От
Gregg Jaskiewicz
Дата:
Its because of pg_upgrade, 'in place' upgrade capabilities that are in
pg since 8.4. For that to work you need both old and new (current) set
of postgresql binaries. Etc.