Skip to content

Commit

Permalink
Fix importing database dumps on Alpine Linux
Browse files Browse the repository at this point in the history
Alpine Linux does not support `GLOB_BRACE`.
  • Loading branch information
jdreesen committed Sep 4, 2024
1 parent 5488f8b commit f79c695
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 18 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## v0.12.6
### Bugfixes:
- Fix importing database dumps on Alpine Linux

## v0.12.5
### Changes:
- Remove unnecessary `doctrine/annotations` from test suite
Expand Down
10 changes: 0 additions & 10 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,6 @@ parameters:
count: 1
path: src/Database/DatabaseResetter.php

-
message: "#^Method Neusta\\\\Pimcore\\\\TestingFramework\\\\Database\\\\PimcoreInstaller\\:\\:getDataFiles\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
path: src/Database/PimcoreInstaller.php

-
message: "#^Method Neusta\\\\Pimcore\\\\TestingFramework\\\\Database\\\\PimcoreInstaller\\:\\:getDataFiles\\(\\) should return array but returns array\\<int, string\\>\\|false\\.$#"
count: 1
path: src/Database/PimcoreInstaller.php

-
message: "#^Parameter \\#1 \\$sql of method Doctrine\\\\DBAL\\\\Connection\\:\\:executeStatement\\(\\) expects string, string\\|false given\\.$#"
count: 1
Expand Down
23 changes: 15 additions & 8 deletions src/Database/PimcoreInstaller.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@
class PimcoreInstaller extends Installer
{
private const SQL_FILE_EXTENSION = '.sql';
private const GZIP_FILE_EXTENSION = '.sql.gz';
private const DUMP_FILE_EXTENSIONS = [
self::SQL_FILE_EXTENSION,
self::GZIP_FILE_EXTENSION,
];
private const SQL_GZIP_FILE_EXTENSION = '.sql.gz';

private ?string $dumpLocation = null;

Expand All @@ -48,6 +44,8 @@ public function setDumpLocation(string $dumpLocation): void
}

/**
* Todo: remove when support for Pimcore <11.3.3 is dropped.
*
* @param Connection $db
* @param string $file
*
Expand All @@ -61,7 +59,8 @@ public function insertDatabaseDump($db, $file = ''): void
$db = Db::get();
}

if (str_ends_with($file, self::GZIP_FILE_EXTENSION)) {
// Todo: remove when support for Pimcore <11.3 is dropped
if (str_ends_with($file, self::SQL_GZIP_FILE_EXTENSION)) {
$file = 'compress.zlib://' . $file;
}

Expand Down Expand Up @@ -94,14 +93,22 @@ public function insertDatabaseDump($db, $file = ''): void
$db->update('users', ['id' => 0], ['name' => 'system']);
}

/**
* @return array<string>
*/
protected function getDataFiles(): array
{
if (!$this->dumpLocation) {
return [];
}

$pattern = \sprintf('%s/*{%s}', $this->dumpLocation, implode(',', self::DUMP_FILE_EXTENSIONS));
$files = [
...glob($this->dumpLocation . '/*' . self::SQL_FILE_EXTENSION, \GLOB_NOSORT) ?: [],
...glob($this->dumpLocation . '/*' . self::SQL_GZIP_FILE_EXTENSION, \GLOB_NOSORT) ?: [],
];

natsort($files);

return glob($pattern, \GLOB_BRACE);
return $files;
}
}

0 comments on commit f79c695

Please sign in to comment.