First public release. A drop-in replacement for Drupal core's `pgsql`
database driver that stores content-entity field data in PostgreSQL
`jsonb` columns on the entity base table ("embedded" storage) instead of
in the relational data, revision and dedicated field tables.
Highlights
----------
- Drop-in replacement for core `pgsql`: exposes the same `Drupal\pgsql\…`
namespace, so an existing site switches over by pointing the connection's
- Remains a full PostgreSQL SQL backend. Every non-entity table (cache,
sessions, key_value, config, watchdog, queue, sequences, search index, …)
and every entity table that is not opted in behaves exactly like core
`pgsql`. Each query/DDL class delegates to its vendored core `*Base` class
and only diverges for registered JSON-storage entity tables.
- Passes the full Drupal core test suite — identical behaviour to core
`pgsql` for every non-opted-in table, with the JSONB entity-storage layer
added transparently on top.
- Storage layout: id/uuid/revision id and single-value base fields stay as
real columns; the rest lives in `jsonb` columns (`__data`,
`__data_all_revisions`, `__data_current_revision`, `__data_latest_revision`,
`__data_translations`). Data/revision/dedicated field tables become logical
entries in the `pgsql_table_information` registry.
- JSONB-aware entity query backend (conditions, sorts, revisions,
translations, aggregates, relationships, workspaces) and a full set of
Views plugin overrides (query, join, field, row, filter, argument,
relationship).
Requirements
------------
- Drupal >= 11.4, < 12, and PostgreSQL.
- Replaces core's `pgsql` module. The core module is removed automatically by
the required `daffie/drupal-core-pgsql-module-remover` package to avoid a
class collision on the shared namespace.
- Relies on a set of core modifications that route entity storage through the
driver's JSONB layer (see docs/core-modifications.md).
Install
-------
ddev composer require daffie/pgsql
See README.md for the full DDEV/recommended-project walkthrough and docs/ for
the storage layout, entity-query, views and testing documentation.
Status
------
Beta. Feature-complete and passing the core test suite; released for wider
testing ahead of a stable 1.0.0. Storage layout and driver APIs may still
change before 1.0.0.