ddev composer config --json --merge extra.drupal-scaffold.allowed-packages '["augustash/ddev-drupal"]' && ddev composer config scripts.ddev-setup "Augustash\\Ddev::postPackageInstall" && ddev composer require --dev augustash/ddev-drupal && ddev composer ddev-setupThe scaffolding refreshes automatically in update mode (no prompts,
ddev-only) via two composer.json hooks — keeping your config.yaml values and
rebuilding only managed files (Selenium, BrowserSync, Solr, Terminus, the
Pantheon add-on hook).
≥ 1.1.62 — automatic; just update:
ddev composer update augustash/ddev-drupal # or `ddev composer install` after a pull< 1.1.62 — wire the hooks in once, then it's automatic:
ddev composer ddev-setup updateSince refreshes are automatic, you only run setup by hand when you actually need to change a value (a typo'd client code, a PHP bump, …):
ddev composer ddev-setupThe zoo service moved from the legacy Bitnami image to the official multi-arch
zookeeper:3.9 image (fixes the linux/amd64 platform warning on Apple Silicon).
The data path changed from /bitnami/zookeeper to /data, so the existing volume
must be recreated. After updating the add-on, run:
ddev stop && docker volume rm "ddev-$(ddev describe -j | jq -r .raw.name)_zoo" && ddev startThe post-start ddev solrcollection hook will repopulate the configset and
recreate the collection in the fresh ZK store.
When Solr is enabled, ddev-setup asks which major version to scaffold, matching
Pantheon Search's offering. The chosen file is stamped to
.ddev/docker-compose.solr.yaml; update runs preserve the choice (and re-pin the
image), so a composer update never reverts your version.
- 8 — the legacy 3-node SolrCloud cluster with external ZooKeeper
(
docker-compose.solr.yaml), pinned to Pantheon'ssolr:8.11.4. - 9 — the official single-node
ddev-solr build with embedded ZooKeeper
(
docker-compose.solr9.yaml), pinned to Pantheon'ssolr:9.10.1.
Deploying Solr 9 to Pantheon. The prompt only scaffolds local ddev — Pantheon's Solr 9 is provisioned separately, and one step isn't discoverable:
pantheon.yml: add asearch:block withversion: 9, then commit + push — Pantheon provisions Solr 9 on deploy.- Pin
solr_versionto9on each search server in settings.php — unset, Search API Solr emits a Solr 8 configset that won't load on Solr 9:$config['search_api.server.pantheon_search']['backend_config']['connector_config']['solr_version'] = '9'; $config['search_api.server.local']['backend_config']['connector_config']['solr_version'] = '9';
- Upload the v9 configset — nobody guesses this one; without it search is
dead — then reindex:
terminus remote:drush <site>.<env> -- search-api-pantheon:postSchema terminus remote:drush <site>.<env> -- search-api:index <index>
Reindex erroring with “pending server tasks could not be executed” over a phantom index (e.g. a leftover
removeIndexfrom the old Solr)? Clear the stale task, then reindex:terminus remote:drush <site>.<env> -- sqlq "DELETE FROM search_api_task WHERE server_id='pantheon_search'"
Running ddev composer ddev-setup (first-time setup, or to change a value) prompts
for:
- Client code
- Document root (defaults to
web) - Drupal version
- PHP version
- Is this site hosted on Pantheon? — if yes:
- Pantheon site name
- Pantheon site environment
- Subdomains (optional)
- Solr support (and, if enabled, Solr version 8 or 9)
These are used to set config.yaml ddev configuration. On a re-run each prompt is pre-filled with the project's current value, so pressing enter through them keeps the existing configuration unchanged.
Database pull is handled by the ddev-pantheon-db add-on, which is automatically installed on ddev start.
Will not download if there is more than one table in the existing local db.
To force a fresh pull:
ddev db -f
- Rerun ddev start.
- The key part is 'Drush was unable to query the database'.
- Make sure you do not have database credentials in settings.local.
- You have an empty database, partial import, something is wrong with it.
- Download a fresh database.
Failed to execute command drush en search_api_solr_admin -y.
Failed to execute command drush sapi-sl --field=id:.
Failed to execute command drush solr-upload-conf.
- Run composer require drupal/search_api_solr_admin -W.
- Run ddev solrcollection.
- An existing solr server is configured as a database server.
- Remove this server and create a new solr cloud server.
- Ensure your settings.local overrides are correct.
- The server 'local' does not exist.
- Comment out configuration overrides in settings.local.php.
- Start ddev, create the server [name].
- Assign the following values:
- Server name: local
- Backend: solr
- Configure Solr Backend: Solr Cloud with Basic Auth
- Default Solr Collection: search
- Username: solr
- Password: SolrRocks
- Assign the following values:
- Uncomment configuration values.
- Make sure [name] matches the configuration overrides, in all respective lines.
- Ex. $config['search_api.index.global']['server'] = [name];
- Ex. $config['search_api.server.[name]']['backend_config']['connector'] = 'solr_cloud_basic_auth';
- Run: ddev solrcollection
- Start ddev, create the server [name].
- Build version was changed to 8.11.4 to match Pantheon hosts exact version.
- Recreate your collection.
- Navigate in your browser to http://[site-name].ddev.site:8983/solr/#/~collections.
- Delete existing collection.
- Run ddev solrcollection.
- Navigate in your browser to http://[site-name].ddev.site:8983/solr/#/~collections.
- Reload your collection.
- Navigate to http://[site-name].ddev.site/admin/config/search/search-api/server/[server-name].
- Click 'Reload Collection'.
- Server version should now be 8.11.4.
- Navigate to http://[site-name].ddev.site/admin/config/search/search-api/server/[server-name].
- Recreate your collection.
TypeError: Drupal\search_api_solr\Utility\SolrCommandHelper::__construct(): Argument #4 ($configset_controller) must be of type Drupal\search_api_solr\Controller\SolrConfigSetController.
- Update drupal/search_api_pantheon.