Skip to content

Commit 2276a8d

Browse files
committed
make DB_CONNECTION replacement more robust
1 parent c1c8511 commit 2276a8d

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

src/Console/Concerns/InteractsWithDockerComposeServices.php

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,31 @@ protected function replaceEnvVariables(array $services)
117117
{
118118
$environment = file_get_contents($this->laravel->basePath('.env'));
119119

120-
if (in_array('pgsql', $services)) {
121-
$environment = str_replace('DB_CONNECTION=mysql', "DB_CONNECTION=pgsql", $environment);
120+
if (in_array('mysql', $services) ||
121+
in_array('mariadb', $services) ||
122+
in_array('pgsql', $services)) {
123+
$defaults = [
124+
'# DB_HOST=127.0.0.1',
125+
'# DB_PORT=3306',
126+
'# DB_DATABASE=laravel',
127+
'# DB_USERNAME=root',
128+
'# DB_PASSWORD=',
129+
];
130+
131+
foreach ($defaults as $default) {
132+
$environment = str_replace($default, substr($default, 2), $environment);
133+
}
134+
}
135+
136+
if (in_array('mysql', $services)) {
137+
$environment = preg_replace('/DB_CONNECTION=.*/', 'DB_CONNECTION=mysql', $environment);
138+
$environment = str_replace('DB_HOST=127.0.0.1', "DB_HOST=mysql", $environment);
139+
}elseif (in_array('pgsql', $services)) {
140+
$environment = preg_replace('/DB_CONNECTION=.*/', 'DB_CONNECTION=pgsql', $environment);
122141
$environment = str_replace('DB_HOST=127.0.0.1', "DB_HOST=pgsql", $environment);
123142
$environment = str_replace('DB_PORT=3306', "DB_PORT=5432", $environment);
124143
} elseif (in_array('mariadb', $services)) {
125144
$environment = str_replace('DB_HOST=127.0.0.1', "DB_HOST=mariadb", $environment);
126-
} else {
127-
$environment = str_replace('DB_HOST=127.0.0.1', "DB_HOST=mysql", $environment);
128145
}
129146

130147
$environment = str_replace('DB_USERNAME=root', "DB_USERNAME=sail", $environment);

0 commit comments

Comments
 (0)