[Policy] Remove pgsql module from core and move it to contrib

Created on 19 April 2025, 6 days ago

Problem/Motivation

Supporting the PostgreSQL database by Drupal Core is delaying improvements in Core and in Starshot. Think of JSON support in Core and the Experience Builder in Starshot. Moving the database driver for PostgreSQL to contrib will solve this problem. The pgsql module in Core just gets too little love and is stagnating itself and Core.

Proposed resolution

We can just move the pgsql module to contrib and when we only do that the module wither away. The tests in the module cover just a tiny bit of the functionality of the module. To keep the module up to date and even flourish the module needs more help. The things that are needed are:

  1. Run all Drupal Core tests with a PostgreSQL database for different versions of Core. Hopefully with different versions of the PostgreSQL database.
  2. Run all Drupal Core tests with a PostgreSQL database for Drupal Core HEAD. Hopefully with different versions of the PostgreSQL database.
  3. Run all Drupal Core tests with a PostgreSQL database for a selected branch of Core. Hopefully with different versions of the PostgreSQL database.
  4. Run all Drupal Core tests with a PostgreSQL database for a selected branch of Core and a selected branch of the pgsql module. Hopefully with different versions of the PostgreSQL database. This is needed when Drupal Core starts with implementing JSON storage.
  5. Run all Drupal Core tests with a patch applied to Core from the pgsql module and a selected branch of the pgsql module. Hopefully with different versions of the PostgreSQL database. For the time between the pgsql needs the change in Core to when the change lands in Core.
  6. A policy for when the module needs a change in Drupal Core. Database specific changes in Core for PostgreSQL are not testable anymore for Core itself as the PostgreSQL database is no longer supported by Core. A change in Drupal Core without testing for the change. At the moment this is not acceptable. Hopefully PostgreSQL support in Core will not go from fully supported to no support.
  7. It would be nice when we remove the module from Core that it will be added to Drupal Starshot project.
  8. Newer versions of the PostgreSQL database will be supported by drupalci_environments.

An example for PostgreSQL specific functionality in core is the helper method Drupal\Core\Entity\ContentEntityStorageBase::cleanIds(). The problem is that something a fix in Drupal core is needed to make it work for a specific database.

I (@daffie) am willing to become the maintainer for pgsql module in core when it is set up for succes.

🌱 Plan
Status

Active

Version

11.0 🔥

Component

postgresql db driver

Created by

🇳🇱Netherlands daffie

Live updates comments and jobs are added and updated live.
  • Needs product manager review

    It is used to alert the product manager core committer(s) that an issue represents a significant new feature, UI change, or change to the "user experience" of Drupal, and their signoff is needed. If an issue significantly affects the usability of Drupal, use Needs usability review instead (see the governance policy draft for more information).

  • Needs release manager review

    It is used to alert the release manager core committer(s) that an issue significantly affects the overall technical debt or release timeline of Drupal, and their signoff is needed. See the governance policy draft for more information.

Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024