Thread: PostgreSQL Upgrade (v9.5 to v12) with Django 2.0

PostgreSQL Upgrade (v9.5 to v12) with Django 2.0

From
Kushal Shri
Date:
Dear Community,

We are in the process of planning a PostgreSQL upgrade and would greatly appreciate any insights, best practices, or lessons learned from your experiences.

Current Setup:
   - PostgreSQL version: 9.5
   - Django version: 2.0
   - Database size: ~3 TB
   - One Master 4 Replicas(Streaming Replication)

We are taking a phased approach to this upgrade. In Phase 1, our goal is to upgrade PostgreSQL from v9.5 to v12, ensuring compatibility with our current Django 2.0 application.

As part of this, I would like to understand:

- What is the highest PostgreSQL version reliably supported with Django 2.0?
- What upgrade strategies or methods have worked well for you in similar environments?
- Any gotchas or performance considerations to keep in mind with large databases during such upgrades?

Your recommendations and experiences will be extremely valuable in helping us plan and execute this upgrade smoothly.

Thank you in advance for your support!

Re: PostgreSQL Upgrade (v9.5 to v12) with Django 2.0

From
Ron Johnson
Date:
On Thu, Jun 12, 2025 at 7:30 AM Kushal Shri <shrikushalk@gmail.com> wrote:
Dear Community,

We are in the process of planning a PostgreSQL upgrade and would greatly appreciate any insights, best practices, or lessons learned from your experiences.

Current Setup:
   - PostgreSQL version: 9.5
   - Django version: 2.0
   - Database size: ~3 TB
   - One Master 4 Replicas(Streaming Replication)

We are taking a phased approach to this upgrade. In Phase 1, our goal is to upgrade PostgreSQL from v9.5 to v12, ensuring compatibility with our current Django 2.0 application.

As part of this, I would like to understand:

- What is the highest PostgreSQL version reliably supported with Django 2.0?
- What upgrade strategies or methods have worked well for you in similar environments?
- Any gotchas or performance considerations to keep in mind with large databases during such upgrades?

Your recommendations and experiences will be extremely valuable in helping us plan and execute this upgrade smoothly.

If you have (or can add) 3-4TB on your existing server, then pg_upgrade to 12.22 is possible.  (You can also do a hard-links pg_upgrade, but there's no going back once you start the instance with v12.  That's why I like upgrading to a new disk.)  A 3TB instance should take no more than a few hours (depending on disk and controller speed.)

From there, you can (eventually) use logical replication from v12 to your new server running PG17 (which I suggest, since it's the latest, and you run servers for a long time).

One notable issue with pg_upgrade is extensions.  It _can_ be as easy as ALTER EXTENSION <extension> UPDATE but if there are dependencies, you might have to DROP EXTENSION <extension> CASCADE and then run the DDL to recreate the dependencies.  Tha' can get messy if the end of the dependency chain is a table.  Only you know for sure.

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!

Re: PostgreSQL Upgrade (v9.5 to v12) with Django 2.0

From
Laurenz Albe
Date:
On Wed, 2025-06-11 at 16:39 +0545, Kushal Shri wrote:
> We are in the process of planning a PostgreSQL upgrade and would greatly
> appreciate any insights, best practices, or lessons learned from your experiences.
>
> Current Setup:
>    - PostgreSQL version: 9.5
>    - Django version: 2.0
>    - Database size: ~3 TB
>    - One Master 4 Replicas(Streaming Replication)
>
> We are taking a phased approach to this upgrade. In Phase 1, our goal is to
> upgrade PostgreSQL from v9.5 to v12, ensuring compatibility with our current
> Django 2.0 application.

That's already wrong.  PostgreSQL v12 is out of support.  Upgrade to v17 or v18.

> As part of this, I would like to understand:
>
> - What is the highest PostgreSQL version reliably supported with Django 2.0?

You'll have to ask Django what they support.

> - What upgrade strategies or methods have worked well for you in similar environments?

pg_upgrade --link

> - Any gotchas or performance considerations to keep in mind with large databases
>   during such upgrades?

Make sure you don't have millions of Large Objects, otherwise the upgrade
will be very slow and memory consuming.

Yours,
Laurenz Albe



Re: PostgreSQL Upgrade (v9.5 to v12) with Django 2.0

From
Kushal Shri
Date:

Currently, our plan is to test pg_upgrade using the --link option to upgrade from PostgreSQL 9.5 to 12, then upgrade Django to the latest supported version, and finally perform another pg_upgrade to PostgreSQL 16.

Since Django 2.0 is officially tested and supported only up to PostgreSQL 10, would you recommend upgrading to PostgreSQL 10 using pg_upgrade as the first phase, followed by logical replication to PostgreSQL 16 as the final target after upgrading Django as well?

and, if we use the --link option for pg_upgrade, what would be the rollback plan in case issues arise during or after the upgrade?


On Sat, 14 Jun 2025 at 01:59, Eduardo Barbachan <eduardobarbachandb@gmail.com> wrote:
I'm sorry if this part of the answer should not be given in this context, but I happen to be in this list (as a lurker for most of the time) and be a Django user. 
Till Django 4.2 (LTS) postgres 12 is supported. Django 5.2 (LTS also) supports postgres 17+.


Em qui., 12 de jun. de 2025 às 10:19, Laurenz Albe <laurenz.albe@cybertec.at> escreveu:
On Wed, 2025-06-11 at 16:39 +0545, Kushal Shri wrote:
> We are in the process of planning a PostgreSQL upgrade and would greatly
> appreciate any insights, best practices, or lessons learned from your experiences.
>
> Current Setup:
>    - PostgreSQL version: 9.5
>    - Django version: 2.0
>    - Database size: ~3 TB
>    - One Master 4 Replicas(Streaming Replication)
>
> We are taking a phased approach to this upgrade. In Phase 1, our goal is to
> upgrade PostgreSQL from v9.5 to v12, ensuring compatibility with our current
> Django 2.0 application.

That's already wrong.  PostgreSQL v12 is out of support.  Upgrade to v17 or v18.

> As part of this, I would like to understand:
>
> - What is the highest PostgreSQL version reliably supported with Django 2.0?

You'll have to ask Django what they support.

> - What upgrade strategies or methods have worked well for you in similar environments?

pg_upgrade --link

> - Any gotchas or performance considerations to keep in mind with large databases
>   during such upgrades?

Make sure you don't have millions of Large Objects, otherwise the upgrade
will be very slow and memory consuming.

Yours,
Laurenz Albe




--

Att.

Eduardo  Barbachan