Lists: | pgsql-general |
---|
From: | Eduard-Cristian Stefan <alexandrul(dot)ct(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Relative path specified for data_directory is not working as expected |
Date: | 2011-06-23 15:08:46 |
Message-ID: | 4E0356FE.3010207@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
I have PostgreSQL 9.0.4-1 running as a service on Windows XP Home Edition,
with the command line of the service being:
D:\me\usr\PostgreSQL\bin/pg_ctl.exe runservice -N "pgsql" -D "d:/me/etc/PostgreSQL"
In the postgresql.conf file I have the following settings:
data_directory = '../../data/PostgreSQL'
external_pid_file = '../../var/run/PostgreSQL.pid'
log_directory = '../../var/log/PostgreSQL'
In this configuration the PostgreSQL service fails to start with the message:
FATAL: data directory "C:/WINDOWS/system32/../../data/PostgreSQL" does not exist
If using an absolute path for data_directory like this:
data_directory = 'd:/me/data/PostgreSQL'
then the service starts ok, with the curent directory of pg_ctl.exe
being C:\WINDOWS\system32\, while the pid file and the logs
are set to the desired location.
I can confirm this behavior by running postgres.exe from the console,
and for relative paths the data_directory is relative to the current folder
from where postgres.exe is launched, and both external_pid_file and log_directory
are relative to the directory specified with the -D option of the command line.
For the record, there is no PGDATA environment variable defined.
Have a nice day,
Eduard
From: | Eduard-Cristian Stefan <alexandrul(dot)ct(at)gmail(dot)com> |
---|---|
To: | Reid(dot)Thompson(at)ateb(dot)com |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Relative path specified for data_directory is not working as expected |
Date: | 2011-06-23 15:20:33 |
Message-ID: | 4E0359C1.5010108@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
On 2011-06-23 19:15, Reid Thompson wrote:
> On 06/23/2011 11:08 AM, Eduard-Cristian Stefan wrote:
>> D:\me\usr\PostgreSQL\bin/pg_ctl.exe runservice -N "pgsql" -D "d:/me/etc/PostgreSQL"
> not very familiar with the windows version, but I think -D is supposed to point to the data directory which in your later info is listed as
> data_directory = 'd:/me/data/PostgreSQL'
I was following the documentation:
If you wish to keep the configuration files elsewhere than the data directory,
the postgres -D command-line option or PGDATA environment variable must point
to the directory containing the configuration files, and the data_directory
parameter must be set in postgresql.conf (or on the command line) to show
where the data directory is actually located. Notice that data_directory
overrides -D and PGDATA for the location of the data directory,
but not for the location of the configuration files.
Have a nice day,
Eduard
From: | Reid Thompson <Reid(dot)Thompson(at)ateb(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Relative path specified for data_directory is not working as expected |
Date: | 2011-06-23 16:15:17 |
Message-ID: | 4E036695.2000508@ateb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-general |
On 06/23/2011 11:08 AM, Eduard-Cristian Stefan wrote:
> D:\me\usr\PostgreSQL\bin/pg_ctl.exe runservice -N "pgsql" -D "d:/me/etc/PostgreSQL"
not very familiar with the windows version, but I think -D is supposed to point to the data directory which in your later info is
listed as
data_directory = 'd:/me/data/PostgreSQL'