On Sun, May 7, 2023 at 6:45 AM Max Pyziur <p...@brama.com> wrote: > On Fri, 5 May 2023, Clifford Snow wrote: > > > I just successfully upgraded my laptop to Fedora 38. > > > > Unfortunately, upgrading postgresql isn't working for me. Running > postgresql-setup upgrade produces and error log in > /var/lib/pgsql/upgrade_postgresql.log which tells me to read the last few > lines of > > > /var/lib/pgsql/data/pg_upgrade_output.d/20230505T172148.011/log/pg_upgrade_dump_16385.log. > But I'm not able to find the files. Even after a complete search of my > system using find. > > > > Any suggestions on how to find the error log or to successfully upgrade > Postgresql? > > I've tried uusing postgresql-setup upgrade a few times and have never been > fully successful using it. > > I have a set of notes and scripts that have worked for me over the last > eight years. I am appending them below. YMMV > > Max > p...@brama.com > > General outline of steps: > ############ > I. Pre Fedora/PostgreSQL (in this case 37-> 38) upgrade > Backup databases > Make note of all users ( \du in monitor ) > > (use sudo where root work is required) > > II. Post Fedora/PostgreSQL (37-> 38) upgrade > Initialize postgresql (First six steps adapted from here: > http://tso.bzb.us/2016/06/postgresql-upgrade-fedora-24.html) > > Install the upgrade utilities: dnf install postgresql-upgrade > Become user postgres: su - postgres > Rename the data directory: mv /var/lib/pgsql/data/ > /var/lib/pgsql/data_<oldVersion>/ > As root, initialize your new (in this case v 15.1.2) database: sudo > postgresql-setup initdb |or| postgresql-setup --initdb --unit postgresql > As user postgres, Copy your pg_hba.conf: cp > /var/lib/pgsql/data_<old_version>/pg_hba.conf/ > /var/lib/pgsql/data/pg_hba.conf/ > To avoid any potential password issues, temporarily change "md5" to > "trust" in both pg_hba.conf files > > start postgresql > As root, systemctl restart postgresql (generally "restart" is more > successful than "start;" could be detris left behind) > > As postgres, run postgis script - run > CreateTemplatePostgis-<VersionNumber>.sh Script below) > > As postgres, create users (createuser -i someusername) > > Create databases make sure users are correct and postgis template is > utilized for postgis database (createdb -T template_postgis ngdata) > > - Restore databases > > > ####### Backup Script ########## > #!/usr/bin/bash > > for DBASE in <list databases here> > do > BACKUPDIR="/path/to/backup/dir" > DBASEB="$BACKUPDIR/$DBASE.out" > > pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f $DBASEB > $DBASE > > pg_dump -U pyz $DBNAME > "$BACKUPDIR/$DBNAME" > > sleep 2 > > done > > ####### End Backup Script ########## > > ####### Make PostGIS template Script (if needed) ######## > #!/usr/bin/env bash > POSTGIS_SQL_PATH=`pg_config --sharedir`/contrib/postgis-3.3 > createdb -E UTF8 template_postgis # Create the template spatial database. > # createlang -d template_postgis plpgsql # Adding PLPGSQL language > support. > psql -d template_postgis -c "CREATE LANGUAGE plpgsql ;" > psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE > datname='template_postgis';" > psql -d template_postgis -f $POSTGIS_SQL_PATH/postgis.sql # Loading the > PostGIS SQL routines > psql -d template_postgis -f $POSTGIS_SQL_PATH/spatial_ref_sys.sql > psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;" # > Enabling users to alter spatial tables. > psql -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;" > psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;" > ####### End PostGIS template if needed ######## > > ###### Create Databases ####### > #!/usr/bin/bash > > # Create Non-PostGIS databases > createdb SomeDBName > > # Create PostGIS databases > createdb -T template_postgis SomePostGISDBName > ###### End Create Databases ####### > > > ####### Restore Databases Script ########## > #!/usr/bin/bash > > for DBASE in <list databases here> > do > BACKUPDIR="/path/to/backup/dir" > DBASEB="$BACKUPDIR/$DBASE.out" > # perl /usr/share/pgsql/contrib/postgis-2.2/postgis_restore.pl > $DBASEB | psql -h localhost -p 5432 -U postgres $DBASE > psql -f $DBASEB $DBASE > done > ####### End Restore Databases Script ########## > > I've done something similar but not scripted. I will be manually creating a new database and then copying a backup into postgresql.
Fortunately this machine is just a laptop that I experiment with and to take on trips. My main postgresql lives on a server. It is much more complex in that one of the databases is updated every minute. Shutting it down for the length of time it takes me to backup and restore is a pain.postgresql-setup --upgrade seems like a better approach. I'd still have to back it up but it would be as critical. My server is still on Fedora 37. Thanks again for the info. I will likely create some scripts from your examples to use on the server. Best, Clifford -- @osm_washington www.snowandsnow.us OpenStreetMap: Maps with a human touch
_______________________________________________ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/users@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue