Skip to main content
Version: 7.3

Upgrading the Admin and Security Databases to PostgreSQL 16.x

PostgreSQL 16.x is minimum supported version for Ed-Fi ODS / API v7.3. There are three available methods for updating instances of the Admin and Security database running on earlier versions of PostgreSQL to 16.x:

  • Restoring database backups to a PostgreSQL 16.x instance

  • Using the pg_upgrade utility

  • Using logical replication

This article provides a high-level overview of upgrading Admin and Security databases instances to PostgreSQL 16.x using database backups.

info

The details for performing a database upgrade are deployment-specific, and this article describes the process when carried out on a single-server installation using version-specific directory names. Detailed information on performing version upgrades and additional upgrade methods are available in the official PostgreSQL documentation for Upgrading a PostgreSQL Cluster.

Upgrading using backups

Step 1. Create backups of the Admin and Security databases

Use the pg_dump utility from the currently installed version of PostgreSQL to create backups of each database.

& "C:\Program Files\PostgreSQL\<old_version>\bin\pg_dump.exe" -U pgadmin -d EdFi_Admin -f EdFi_Admin_backup.sql
& "C:\Program Files\PostgreSQL\<old_version>\bin\pg_dump.exe" -U pgadmin -d EdFi_Security -f EdFi_Security_backup.sql

Step 2. Stop the old PostgeSQL server instance

Stop the old PostgreSQL instance.

& "C:\Program Files\PostgreSQL\<old_version>\bin\pg_ctl" -D "C:\Program Files\PostgreSQL\<old_version>\data" stop

Step 3. Install Postgres 16.x

Install Version 16.x using the PostgreSQL installer.

Step 4. Start PostgreSQL 16.x

Start the new instance of PostgreSQL 16.x (if it is not already running.)

& "C:\Program Files\PostgreSQL\16\bin\pg_ctl" -D "C:\Program Files\PostgreSQL\16\data" start

Step 5. Restore the database backups

Use psql to create empty EdFi_Admin and EdFi_Security databases on the new PostgreSQL 16.x instance and then restore the backup files into them.

& "C:\Program Files\PostgreSQL\16\bin\psql" -U pgadmin -c 'create database EdFi_Admin;'
& "C:\Program Files\PostgreSQL\16\bin\psql" -U pgadmin -c 'create database EdFi_Security;'
& "C:\Program Files\PostgreSQL\16\bin\psql" -U pgadmin -d EdFi_Admin < EdFi_Admin_backup.sql
& "C:\Program Files\PostgreSQL\16\bin\psql" -U pgadmin -d EdFi_Security < EdFi_Security_backup.sql