Skip to content

Commit e08b594

Browse files
tomcoonentaylorotwellJubeki
authored
MariaDB 11 support (#698)
* Add support for MariaDB 11 * Health check update * Split up MariaDB 10/11 commands * Simplify split * Fix volume naming * Update stubs/mariadb10.stub Co-authored-by: Julius Kiekbusch <[email protected]> * Update stubs/mariadb10.stub Co-authored-by: Julius Kiekbusch <[email protected]> * Update stubs/mariadb11.stub Co-authored-by: Julius Kiekbusch <[email protected]> * Update stubs/mariadb11.stub Co-authored-by: Julius Kiekbusch <[email protected]> --------- Co-authored-by: Taylor Otwell <[email protected]> Co-authored-by: Julius Kiekbusch <[email protected]>
1 parent 3a2a002 commit e08b594

File tree

5 files changed

+37
-8
lines changed

5 files changed

+37
-8
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/usr/bin/env bash
2+
3+
/usr/bin/mariadb --user=root --password="$MYSQL_ROOT_PASSWORD" <<-EOSQL
4+
CREATE DATABASE IF NOT EXISTS testing;
5+
GRANT ALL PRIVILEGES ON \`testing%\`.* TO '$MYSQL_USER'@'%';
6+
EOSQL

src/Console/Concerns/InteractsWithDockerComposeServices.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ trait InteractsWithDockerComposeServices
1515
protected $services = [
1616
'mysql',
1717
'pgsql',
18-
'mariadb',
18+
'mariadb10',
19+
'mariadb11',
1920
'redis',
2021
'memcached',
2122
'meilisearch',
@@ -66,7 +67,7 @@ protected function buildDockerCompose(array $services)
6667
: Yaml::parse(file_get_contents(__DIR__ . '/../../../stubs/docker-compose.stub'));
6768

6869
// Prepare the installation of the "mariadb-client" package if the MariaDB service is used...
69-
if (in_array('mariadb', $services)) {
70+
if (in_array('mariadb10', $services) || in_array('mariadb11', $services)) {
7071
$compose['services']['laravel.test']['build']['args']['MYSQL_CLIENT'] = 'mariadb-client';
7172
}
7273

@@ -92,7 +93,7 @@ protected function buildDockerCompose(array $services)
9293
// Merge volumes...
9394
collect($services)
9495
->filter(function ($service) {
95-
return in_array($service, ['mysql', 'pgsql', 'mariadb', 'redis', 'meilisearch', 'typesense', 'minio']);
96+
return in_array($service, ['mysql', 'pgsql', 'mariadb10', 'mariadb11', 'redis', 'meilisearch', 'typesense', 'minio']);
9697
})->filter(function ($service) use ($compose) {
9798
return ! array_key_exists($service, $compose['volumes'] ?? []);
9899
})->each(function ($service) use (&$compose) {
@@ -123,7 +124,8 @@ protected function replaceEnvVariables(array $services)
123124
$environment = file_get_contents($this->laravel->basePath('.env'));
124125

125126
if (in_array('mysql', $services) ||
126-
in_array('mariadb', $services) ||
127+
in_array('mariadb10', $services) ||
128+
in_array('mariadb11', $services) ||
127129
in_array('pgsql', $services)) {
128130
$defaults = [
129131
'# DB_HOST=127.0.0.1',
@@ -145,7 +147,7 @@ protected function replaceEnvVariables(array $services)
145147
$environment = preg_replace('/DB_CONNECTION=.*/', 'DB_CONNECTION=pgsql', $environment);
146148
$environment = str_replace('DB_HOST=127.0.0.1', "DB_HOST=pgsql", $environment);
147149
$environment = str_replace('DB_PORT=3306', "DB_PORT=5432", $environment);
148-
} elseif (in_array('mariadb', $services)) {
150+
} elseif (in_array('mariadb10', $services) || in_array('mariadb11', $services)) {
149151
if ($this->laravel->config->has('database.connections.mariadb')) {
150152
$environment = preg_replace('/DB_CONNECTION=.*/', 'DB_CONNECTION=mariadb', $environment);
151153
}

src/Console/InstallCommand.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ public function handle()
6565
$this->output->writeln('<fg=gray>➜</> <options=bold>./vendor/bin/sail up</>');
6666

6767
if (in_array('mysql', $services) ||
68-
in_array('mariadb', $services) ||
68+
in_array('mariadb10', $services) ||
69+
in_array('mariadb11', $services) ||
6970
in_array('pgsql', $services)) {
7071
$this->components->warn('A database service was installed. Run "artisan migrate" to prepare your database:');
7172

stubs/mariadb.stub renamed to stubs/mariadb10.stub

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ mariadb:
1111
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
1212
volumes:
1313
- 'sail-mariadb:/var/lib/mysql'
14-
- './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
14+
- './vendor/laravel/sail/database/mariadb/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
1515
networks:
1616
- sail
1717
healthcheck:
18-
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
18+
test: ["CMD", "mariadb-admin", "ping", "-p${DB_PASSWORD}"]
1919
retries: 3
2020
timeout: 5s

stubs/mariadb11.stub

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
mariadb:
2+
image: 'mariadb:11'
3+
ports:
4+
- '${FORWARD_DB_PORT:-3306}:3306'
5+
environment:
6+
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
7+
MYSQL_ROOT_HOST: "%"
8+
MYSQL_DATABASE: '${DB_DATABASE}'
9+
MYSQL_USER: '${DB_USERNAME}'
10+
MYSQL_PASSWORD: '${DB_PASSWORD}'
11+
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
12+
volumes:
13+
- 'sail-mariadb:/var/lib/mysql'
14+
- './vendor/laravel/sail/database/mariadb/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
15+
networks:
16+
- sail
17+
healthcheck:
18+
test: ["CMD", "mariadb-admin", "ping", "-p${DB_PASSWORD}"]
19+
retries: 3
20+
timeout: 5s

0 commit comments

Comments
 (0)