On Tue, Mar 28, 2017 at 6:44 PM, Robert Haas <robertmh...@gmail.com> wrote:

> On Tue, Mar 28, 2017 at 12:18 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> > Robert Haas <robertmh...@gmail.com> writes:
> >> On Tue, Mar 28, 2017 at 11:44 AM, Peter Eisentraut
> >> <peter.eisentr...@2ndquadrant.com> wrote:
> >>> On 3/21/17 08:12, Robert Haas wrote:
> >>>> I think a big part of the usability problem here comes from the fact
> >>>> that the default database for connections is based on the username,
> >>>> but the default databases that get created have fixed names (postgres,
> >>>> template1).  So the default configuration is one where you can't
> >>>> connect.  Why the heck do we do it that way?
> >
> >>> Historical, probably.  We could ponder changing the way the default
> >>> database is determined, but I don't want to imagine the breakage coming
> >>> out of that.
> >
> >> What do you think would break?
> >
> > Any configuration depending on the existing default?
> >
> > The existing behavior here dates from before we had schemas, so that
> > if users wanted to have private objects they *had* to use separate
> > databases.  Nowadays a schema-per-user within one database makes a lot
> > more sense for many environments, and we even have the default value
> > for search_path set up to make that as painless as possible.  Still,
> > it's not a solution for everybody, particularly not installations
> > that want to keep their users well separated.
> >
> > Perhaps we could satisfy novices by changing the out-of-the-box
> > behavior, but provide some way to select the old behavior for
> > installations that are really depending on it.
>
> Hmm.  I guess that would mean that the same connection string would
> mean something different depending on how you configured this
> behavior, which does not sound like a good idea.  But why not go the
> other way and just create the default database by default, either in
> addition to or instead of the postgres database?  I mean, most people
> probably do this:
>
> initdb
> pg_ctl start
> createdb
>

I would argue that only a very small minority does that. The majority does
one of:

yum install postgresql
setup-postgresql <can't remember the switch offhand, but the one that calls
initdb for them>
systemctl start postgresql

or
apt-get install postgresql
(which auto-initdb's and autostarts)


or
double-clicks graphical installer on windows
(which auto-initdb's and autostarts)


I would bet each one of those have at least one and probably more than one
order of magnitude more users than ever call initdb or pg_ctl manually.


-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

Reply via email to