Some command fixes.

This commit is contained in:
James Cole 2019-11-17 13:34:33 +01:00
parent 4ad0e120bc
commit e2e8ae5b28
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
2 changed files with 12 additions and 8 deletions

View File

@ -54,8 +54,8 @@ if [[ ! -z "$DB_PORT" ]]; then
fi
#env $(grep -v "^\#" .env | xargs)
php artisan cache:clear
php artisan migrate --seed
php artisan firefly-iii:create-database
php artisan migrate --seed
php artisan firefly-iii:decrypt-all
# there are 13 upgrade commands

View File

@ -50,16 +50,20 @@ class CreateDatabase extends Command
return 1;
}
// with PDO, try to list DB's (
$stmt = $pdo->prepare('SHOW DATABASES WHERE `Database` = ?');
$stmt->execute([env('DB_DATABASE')]);
$result = $stmt->fetch();
if (false === $result) {
$stmt = $pdo->query('SHOW DATABASES;');
$exists = false;
// slightly more complex but less error prone.
foreach ($stmt as $row) {
$name = $row['Database'] ?? false;
if ($name === env('DB_DATABASE')) {
$exists = true;
}
}
if (false === $exists) {
$this->error(sprintf('Database "%s" does not exist.', env('DB_DATABASE')));
// try to create it.
$stmt = $pdo->query(sprintf('CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;', env('DB_DATABASE')));
$stmt->execute();
$stmt->fetch();
$pdo->exec(sprintf('CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;', env('DB_DATABASE')));
$this->info(sprintf('Created database "%s"', env('DB_DATABASE')));
return 0;