DDEV, the local development environment, just launched v1.25.4 with 142 pull requests from the community behind it. Here's how the release notes describe it:

The theme of this release is doing less by hand. A new project can start with a "seed" database you already have, and image and environment customizations can be set globally instead of in every project.

Highlights include:

  • Database seeding from a snapshot, plus a --reset-database flag
  • MySQL 9.7 LTS support
  • Global Dockerfiles and global .env files
  • Maho and MODX Revolution project types, and Shopware 6 without an add-on
  • Webserver and router error pages that say what went wrong
  • Fixes for the regressions introduced in v1.25.3

Database Seeding and Reset

A fresh project used to start with an empty database, which meant importing a dump or a snapshot every time you rebuilt. DDEV can now fill a brand-new database from a snapshot, which restores faster than importing a SQL file.

ddev start --seed-snapshot=<name-or-path>

The snapshot can live in .ddev/db_snapshots or anywhere else on disk, and it works with MariaDB, MySQL, and PostgreSQL. There's also a reserved name. Run ddev snapshot --name=seed once, and from then on any ddev delete followed by ddev start brings that database back with no flag to remember. If the file is small enough, you can commit .ddev/db_snapshots/seed* to Git so the rest of the team gets it too.

The companion flag throws the current database away and starts over, taking a snapshot first:

ddev start --reset-database

Both flags work on ddev start and ddev restart, and they combine.

Snapshots got other work in this release. ddev snapshot --list now shows sizes and database versions, snapshots are shared across Git worktrees, and uncompressed snapshots restore faster.

Visit the DDEV v1.25.4 release announcement for the details on everything else, including MySQL 9.7 LTS support, global Dockerfiles and .env files, the new project types, and the fixes for the v1.25.3 regressions.

References