Problem/Motivation

Drupal requirements list the following PostgreSQL requirements currently:

Drupal 9 requires PostgreSQL 10.0 or higher with the pg_trgm extension

Decide on Drupal 10 requirements changes if any.

Distros

  • Debian
    • 10 (6th july 2019): Ships with PostgreSQL 11
    • 11 Expected to be released before Drupal 10: Ships with PostgreSQL 13
  • Ubuntu
    • 20.04 LTS (april 2020): Ships with PostgreSQL 12
    • 22.04 LTS (expected april 2022) Probably ships with PostgreSQL 14
  • Red Hat Enterprise Linux
    • 8 (7th may 2019): Ships with "10 and 9.6 via modules"
    • 8.1 (5th november 2019): Ships with PostgeSQL 12
    • 8.3 (29th october 2020)
    • 8.4 (18th May 2021): Ships with PostgresSQL 13

Database

  • 9.5 released January 2016 and EOL February, 2021
  • 9.6 released September 2016 and EOL November, 2021
  • 10 released October 2017 and EOL November, 2022
  • 11 released October 2018 and EOL November, 2023
  • 12 released October 2019 and EOL November, 2024
  • 13 released September 2020 and EOL November, 2025

Proposed resolution

Require PostgreSQL 12.

Remaining tasks

Discuss.

User interface changes

None.

API changes

TBD.

Data model changes

TBD.

Release notes snippet

TBD.

Comments

daffie created an issue. See original summary.

daffie’s picture

Issue summary: View changes

Update for RHEL 8.1.1. It ships with PostgreSQL 12. See: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8...

catch’s picture

Priority: Normal » Critical

Bumping to critical since this blocks Drupal 10, and we'll want to announce (and potentially add hook_requirements() warnings or similar) in advance of the release.

Requiring PostgreSQL 12 seems very reasonable.

gábor hojtsy’s picture

Title: [policy] Decide on PostgreSQL version support status for Drupal 10 » [policy] Require PostgreSQL 12 with pg_trgm for Drupal 10 (raise from v10 in Drupal 9)
Status: Active » Needs review

Make proposal clear in title.

effulgentsia’s picture

Per https://access.redhat.com/support/policy/updates/rhel8-app-streams-life-..., RHEL will support PostgreSQL 10 until May 2024. But since Drupal 10 will need to be supported until Nov. 2025, I agree with requiring PostgreSQL 12, and leaving PostgreSQL 10 support as a job for D10 contrib for those RHEL 8 users who want to keep using PostgreSQL 10 (despite higher versions being also available on RHEL) between Drupal 10.0's release and May 2024.

effulgentsia’s picture

But since Drupal 10 will need to be supported until Nov. 2025, I agree with requiring PostgreSQL 12

When I wrote that, I was assuming we'd EOL D10 with Symfony 5's EOL. However, it's theoretically possible we might want to push D10's EOL to as far back as Symfony 6's EOL of November 2027. Ubuntu 20.04's ESM will run until 2030, so if we start D10 on PostgreSQL 12, I think we'll need to keep supporting that until D10's EOL, even if it's all the way to November 2027. I'm ok with that. What about others? Are we willing to live with PostgreSQL 12 for that long?

daffie’s picture

However, it's theoretically possible we might want to push D10's EOL to as far back as Symfony 6's EOL of November 2027.

If we are going to support D10 for that long, then we should be open to raise to minimum required version for all by core supported databases. Just like we shall need to do with the minimum required version of PHP.
With that in mind, a minimum required version of PostgreSQL 12 is good for me.

catch’s picture

Issue summary: View changes

https://www.postgresql.org/support/versioning/
Final release for postgresql 12 is November 14, 2024

If we are going to support D10 for that long, then we should be open to raise to minimum required version for all by core supported databases. Just like we shall need to do with the minimum required version of PHP.

We should, but we haven't actually dropped any PHP version support in Drupal 9, it's still being discussed in #2917655: [9.4.x only] Drop official PHP 7.3 support in Drupal 9.4, and also issues like #3223435: Track PHP 8.1 support in hosting and distributions, so we have to be prepared for the possibility that we never actually get around to dropping support, since that's the default if no-one pushes for it.

In practice, it's not often we hit a real issue with older database versions, so the main issues are having to run tests on extra DrupalCI environments, vs. the effort it takes to drop support for something (core patches, timing, announcements etc.).

When it comes to adopting new database features, I think it's easy to just say it'll happen in Drupal 11. If postgres 12 becomes a barrier to fixing a major/critical bug, then we could end up getting stuck (as with PHP versions and other database versions) - this would either be early enough in the Drupal 10 cycle to drop support after all, or late enough that the bug ends being fixed only in Drupal >= 11.

I've updated the issue summary to add that RHEL 8.4 ships with PostgreSQL 13 (according to https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8...).

It does look like we could just about get away with requiring PostgreSQL 13 if we wanted to?

daffie’s picture

It does look like we could just about get away with requiring PostgreSQL 13 if we wanted to?

We can do that, only we shall then no longer support Ubuntu 20.04 with PostgreSQL. The main thing for me would be an EOL of November 2025 instead of November 2024. I do not see any features in the release for PostgreSQL v13 that would be very interesting for Drupal. See: https://www.postgresql.org/docs/13/release-13.html.

effulgentsia’s picture

I have no confidence that we'll be able to drop PostgreSQL 12 support from D10 if we include it in 10.0. As far as I know, we have never in the past dropped support for a database version, even an EOL one, within a Drupal major release (even 6, 7, and 8, that have each had very long lifetimes). There will be people on Ubuntu 20.04 using Ubuntu's ESM until 2030.

That said, if we release Drupal 11 in 2025'ish, then we can set that to whatever PostgreSQL version makes sense at that time, at which point the PostgreSQL 12 support burden (whatever that ends up being) in 2026/2027 will just be for post-Drupal-11.0 bug fixes that we want to backport to D10.

effulgentsia’s picture

Status: Needs review » Reviewed & tested by the community

No arguments have been presented here for setting the minimum below PostgreSQL 12.

As to setting the minimum higher than 12, while there might be theoretical problems with PostgreSQL 12 EOLing before D10 EOLs, #8 and #9 indicate that it's unlikely to cause us much difficulty in practice. Meanwhile, I think we'd need a pretty compelling reason to raise the minimum above what's on Ubuntu 20.04, and per above, we have no such compelling reason.

Therefore, RTBC'ing this at PostgreSQL 12.

daffie’s picture

+1 for RTBC.

I would like to say that for me as somebody who works a lot with the Drupal database subsystem, that supporting database versions that are released a long time ago and are past their EOL is not very exiting. Having a new major release of Drupal core every 3 years would be great. Like just after the release of a new Symfony major version. Just my 2 cents. Feel free to disagree.

larowlan’s picture

+1, the distro support and timeframes above make sense to me

catch’s picture

Status: Reviewed & tested by the community » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.