I have an application that throws an error if I don’t give it a password for a MySQL endpoint, but the default configuration for MySQL on Platform.sh has an empty string in the password field of the relationships variable. How can I manually add a password to this service?
Although it is not possible to manually set a password for a MySQL or MariaDB service, it is possible to cause Platform.sh to provide a generated password for the database endpoint. If you follow the instructions for defining multiple databases, but you only define a single endpoint, that non-default endpoint will still include a generated password.
For example:
db:
type: "mariadb:10.4"
disk: 512
configuration:
schemas:
- maindb
endpoints:
maindb:
default_schema: maindb
privileges:
maindb: admin
In the above example, a database is manually defined almost identically to the default configuration block, but it will expose a generated password in the $PLATFORM_RELATIONSHIPS
environment variable. To use these credentials in your application, you might want to use one of our configuration reader libraries.