Nobody sets out to commit a password. It happens because a migration file is, from the point of view of the person writing it, just SQL, and SQL sometimes needs to know things that are secret. The four ways in A settings row. The application reads its configuration from a table, the migration seeds the table, and one of the values is a connection string to another service. INSERT INTO settings VALUES ('warehouse_dsn', 'postgres://etl:Sup3rSecret@wh.internal/dw') . This is t...