> Robert Treat <[EMAIL PROTECTED]> writes: >> On Thu, 2004-04-08 at 09:49, [EMAIL PROTECTED] wrote: >>> (2) I would bet that *most* deployments of PostgreSQL only use one database environment per server, so I'm not even sure that it would be an >>> issue for the majority of current or prospective users. > >> except that when doing major version upgrades, i find it far better practice to install multiple versions on the machine whenever possible, even if you only intend to run a single version. > > In any case, you will never get such a proposal past the core > developers, because we all run multiple PG installs per machine. My primary development machine currently has six postmasters alive on it (7.0, 7.1, ..., 7.4 + CVS tip); my alternate machine has five installations on it, though not all are alive since I've not had reason to restart them all since last reboot; even the laptop I'm physically typing on right now has more than one Postgres installation on it. And practically any time someone allows me access to a machine of theirs to check out some kind of portability issue, I'll build a test installation in my guest-account home directory, rather than muck with their live server. > > So, don't bother proposing anything that makes it even slightly harder to run multiple servers per machine. It will not happen. End of discussion.
I'll just post the README file at the bottom for a reference, but it PostgreSQL can appear completely unchanged, but with the addition of just two command line arguments, work "better" in situations where this sort of functionality is desired, I don't see why people would wish it not to be included. If there are issues with coding style, or other finer details, I would be very much willing to address any issues. Personally, I think the requirement of using symlinks to synthesize this functionality is a hard sell to many administrators. :::::::::: This patch enables PostgreSQL to be far more flexible in its configuration methodology. Specifically, It adds two more command line parameters, "-C" which specifies either the location of the postgres configuration file or a directory containing the configuration files, and "-R" which directs PostgreSQL to write its runtime process ID to a standard file which can be used by control scripts to control PostgreSQL. A patched version of PostgreSQL will function as: --- Configuration file --- postmaster -C /etc/postgres/postgresql.conf This will direct the postmaster program to use the configuration file "/etc/postgres/postgresql.conf" --- Configuration Directory --- postmaster -C /etc/postgres This will direct the postmaster program to search the directory "/etc/postgres" for the standard configuration file names: postgresql.conf, pg_hba.conf, and pg_ident.conf. --- Run-time process ID --- postmaster -R /var/run/postmaster.pid This will direct PostgreSQL to write its process ID number to a file, /var/run/postgresql.conf --- postgresql.conf options --- Within the configuration file there are five additional parameters: include, hba_conf,ident_conf, data_dir, and runtime_pidfile. They are used as: include = '/etc/postgres/debug.conf' data_dir = '/vol01/postgres' hba_conf = '/etc/postgres/pg_hba_conf' ident_conf = '/etc/postgres/pg_ident.conf' runtime_pidfile = '/var/run/postgresql.conf' The "-D" option on the command line overrides the "data_dir" in the configuration file. The "-R" option on the command line overrides the "runtime_pidfile" in the configuration file. If no hba_conf and/or ident_conf setting is specified, the default $PGDATA/pg_hba.conf and/or $PGDATA/pg_ident.conf will be used. If the "-C" option specifies a diretcory, pg_hba.conf and pg_ident.conf files must be in the specified directory. This patch is intended to move the PostgreSQL configuration out of the data directory so that it can be modified and backed up as well as answer some of the issues with deploying PostgreSQL in an FHS (File Hierarchy Standard) way. This patch is also useful for running multiple servers with the same parameters: postmaster -C /etc/postgres/postgresql.conf -D /VOL01/postgres -p 5432 postmaster -C /etc/postgres/postgresql.conf -D /VOL02/postgres -p 5433 To apply the patch, enter your PostgreSQL source directory, and run: cat pgec-PGVERSON.patch | patch -p 1 ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster