Databases
MariaDB is always running. PostgreSQL and Redis are set up the first time a site needs them, and SQLite needs nothing at all. You can browse all of them from the dashboard.
MariaDB#
Every WordPress site gets a database of its own on Cove's MariaDB, named after the site: my-shop gets cove_my_shop. So does a Laravel app made with --database=mysql. A WordPress site added before Cove 2.5 keeps the name it was given, which ends in an extra underscore (cove_my_shop_). Deleting a site drops the database Cove made for it, under either name. A database you pointed wp-config.php at by hand stays. Cove connects as its own user, cove_user, whose password is DB_PASSWORD in ~/Cove/config.
cove db list # each WordPress site's database and credentials
cove db backup # dump every WordPress site's database
cove db fix-collation mysite # make a dump import on an older hostcove db backup writes a .sql file into each site's private/ folder, beside public/. To back up one site, files and all, use cove backup or cove snapshot, which work for every kind of site. See Backups and moving.
MariaDB 11.5 and newer stamp tables with uca1400 collations that older MariaDB and MySQL servers don't know. If a host refuses your dump, cove db fix-collation mysite (or --all) converts them back to utf8mb4_unicode_ci. Add --dry-run to see what it would change first.
PostgreSQL#
A Laravel app made with --database=pgsql runs on PostgreSQL. Cove sets it up the first time one asks: Homebrew's postgresql@17 on macOS, your distribution's package on Linux. If one is already running on port 5432, Cove uses that. It signs in as its own role, cove_user, with the password in ~/Cove/config.
cove postgres # running? version, databases
cove postgres install # set it up now
cove postgres psql cove_shop # a psql shell on one database
cove postgres stopPostgreSQL is optional, so cove enable and cove disable leave it alone. Use cove postgres start and stop.
SQLite#
A new Laravel app uses SQLite unless you pick something else. The database is a file in the project, database/database.sqlite, so it travels with the site's folder. It needs no server and nothing to set up. A plain PHP site can use SQLite the same way.
Redis#
Laravel apps can keep their cache, sessions and queue in Redis. Cove sets it up when an app set up with --from uses it, or when you ask: Homebrew's redis on macOS, your distribution's redis or valkey on Linux.
cove redis # running? version, keys
cove redis install # set it up now
cove redis cli # redis-cli on Cove's RedisIt listens on 127.0.0.1:6379 with no password, and nothing outside your computer can reach it. Each site's keys start with their own prefix, cove:<site>:. Renaming a site moves its keys, and deleting it removes them. Like PostgreSQL, Redis has its own start and stop.
In the dashboard#
The dashboard's databases view lists every database with the site it belongs to, including Laravel apps' SQLite files and the databases on PostgreSQL. Open a table to page through it, sort and search it, and double-click a cell to edit it. The sql tab runs queries with ⌘↵. A WordPress database opens on an overview of its address, table prefix and largest autoloaded options. See The dashboard.
Adminer#
For exports, imports and schema changes, https://db.cove.localhost is Adminer, already signed in to MariaDB. Like the dashboard, it answers only on your own computer.
Something wrong or missing here? Open an issue ↗ Every command also explains itself: cove help <command>.