> On Tue, Nov 19, 2013 at 11:22:47AM +0100, Karsten Hilbert wrote:
> > ERROR: transaction is read-only
> >
> > Now, this is quite understandable since one of the databases
> > is set to
> >
> > ALTER DATABASE ... SET DEFAULT_TRANSACTION_READ_ONLY TO ON;
> >
> > However, since the above setting is something which can
> > be expected every so often in any odd PostgreSQL cluster
> > (and not some weird coincidence no one really knows how
> > they got into in the first place) I would think pg_upgrade
> > really should be able to handle.
> >
> > Technically that's pretty easy - make sure transactions are
> > set to readwrite for the pg_upgrade run by any number of
> > means:
> >
> > - ALTER DATABASE before/after pg_upgrade
> > - ALTER USER running the pg_upgrade
> > - SET TRANSACTION READ WRITE at the appropriate times
> > - ...
> >
> > Or at least this limitation of pg_upgrade (requiring
> > DB write access) should get a mention in the docs and/or
> > man page.
> >
> > What is the informed opinion on this ?
>
> I think pg_upgrade did the right thing here by throwing an error. There
> is no clean way to handle these cases without possibly causing more
> problems.
I am not sure this is the ideal way of looking at the problem (for one
thing it wasn't pg_upgrade throwing the error). Maybe I have not clearly
expressed myself.
Let me try to rephrase:
Fact: pg_upgrade can NOT properly upgrade clusters which contain
databases that are set to "default_transaction_read_only on"
Question: Is this intended ?
Thanks,
Karsten