On Mon, Jan 11, 2016 at 10:04:16AM -0500, Tom Lane wrote:
/tmp/mutt-mayon-1000-19386-284b6a00794950f414
> Paul Jones <pbj@cmicdo.com> writes:
> > pg_upgrade complains about not being able to find $libdir/plpython3
> > when upgrading a 9.4 cluster that has both python2 and python3 used.
>
> No, that's not what the error message says:
>
> > Could not load library "$libdir/plpython3"
> > FATAL: Python major version mismatch in session
> > DETAIL: This session has previously used Python major version 2, and it is now attempting to use Python major
version3.
> > HINT: Start a new session to use a different Python major version.
>
> This is a restriction we put in place because libpython2 and libpython3
> don't coexist nicely in the same address space. Unfortunately, it makes
> it problematic to restore a dump that contains references to both python2
> and python3 functions.
>
> It looks like pg_upgrade tries to load all libraries from functions in
> any database in the old cluster into a single session in the new cluster,
> which will fail in a scenario like this even if you keep python2 and
> python3 functions rigorously separated into distinct databases. I'm
> not sure if we could weaken that test enough to work.
I guess the thing to do is to manually pg_dump the databases that have
python, drop them, upgrade, and then manually restore.
>
> > I dropped the python2 database but still got the problem.
>
> You must still have at least one database that contains references
> to python2 (check pg_language to be sure).
I thought of that after I pulled the trigger on the mail...
Thanks for the information...
>
> regards, tom lane
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general