For MySQL, the database connection string from Aiven is in the format:
You can remove the configuration for
DB_* and instead use the variable
DATABASE_URL with the full string.
Pro-tip: Laravel’s built in migrations (I was using Laravel Breeze) expect you to have
mysql.sql_require_primary_key disabled, I’m not sure why. It’s default enabled on a lot of systems, including Aiven and Digital Ocean from what I’ve seen so far, so you may need change this setting if your migrations don’t succeed.
For PostgreSQL, the database connection string looks very similar to MySQL but with a pg-specific prefix:
Again, this connection string goes in the variable called
DATABASE_URL. For PostgreSQL, you also need to set
pgsql so that Laravel knows to use this connection.
It’s not a big deal to separate the different variables needed for the database connection but especially as a person that spins up a lot of temporary databases to try stuff out and therefore has to update the connections all the time, this was a neat trick that saves me a minute or two every time.