ddev

Install postgis extension with DDEV


I have the following DDEV config file:

name: whatever
type: php
docroot: public
php_version: "8.3"
webserver_type: nginx-fpm
database:
    type: postgres
    version: "15"
dbimage_extra_packages: [postgis]

But when I try to enable the extension, it says that postgis is not installed in the container.

The official ddev docs don't mention anything about this, so I wonder if anyone on Stackoverflow can shed some light on the matter.

This is how I am trying to enable the extension:

ddev ssh -s db
psql
CREATE EXTENSION postgis;

And this is what I get:

db=# CREATE EXTENSION postgis;
ERROR:  extension "postgis" is not available
DETAIL:  Could not open extension control file "/usr/share/postgresql/15/extension/postgis.control": No such file or directory.

Thanks.


Solution

  • Use the appropriate installation instructions for your version of PostgreSQL:

    (ARM64 packages may not work for PostgreSQL 9,10,11.)

    ddev config --dbimage-extra-packages=postgresql-16-postgis-3,postgresql-16-postgis-3-scripts,postgis
    ddev config --dbimage-extra-packages=postgresql-15-postgis-3,postgresql-15-postgis-3-scripts,postgis
    ddev config --dbimage-extra-packages=postgresql-14-postgis-3,postgresql-14-postgis-3-scripts,postgis
    ddev config --dbimage-extra-packages=postgresql-13-postgis-3,postgresql-13-postgis-3-scripts,postgis
    ddev config --dbimage-extra-packages=postgresql-12-postgis-3,postgresql-12-postgis-3-scripts,postgis
    ddev config --dbimage-extra-packages=postgresql-11-postgis-2.5,postgresql-11-postgis-2.5-scripts,postgis
    ddev config --dbimage-extra-packages=postgresql-10-postgis-2.4,postgresql-10-postgis-2.4-scripts,postgis
    ddev config --dbimage-extra-packages=postgresql-9.6-postgis-2.3,postgresql-9.6-postgis-scripts,postgis
    

    It is better not to install from metapackages like postgresql-postgis and postgresql-postgis-scripts, as the base version of PostgreSQL changes with each Debian release (for example, Debian Bookworm uses PostgreSQL 15):

    # do not use this
    ddev config --dbimage-extra-packages=postgresql-postgis,postgresql-postgis-scripts,postgis