Skip to content

Commit f1d7b56

Browse files
committed
Bugfix for auto-creating new databases
1 parent 2f52760 commit f1d7b56

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/Command/SchemaLoadCommand.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,20 +59,24 @@ public function execute(InputInterface $input, OutputInterface $output)
5959

6060
$connector = new Connector();
6161
$config = $connector->getConfig($url);
62-
$pdo = $connector->getPdo($config);
62+
$serverPdo = $connector->getPdo($config, 'server');
6363
$dbname = $config->getName();
6464

65-
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
65+
// Ensure the database (schema) exists on the server
66+
$serverPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
6667
if ($config->getDriver() != 'sqlite') {
67-
$stmt = $pdo->query("SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '" . $dbname . "'");
68+
$stmt = $serverPdo->query("SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '" . $dbname . "'");
6869
if (!$stmt->fetchColumn()) {
6970
$output->writeln("<info>Creating database</info>");
70-
$stmt = $pdo->query("CREATE DATABASE " . $dbname . "");
71+
$stmt = $serverPdo->query("CREATE DATABASE " . $dbname . "");
7172
} else {
7273
$output->writeln("<error>Database exists...</error>");
7374
}
7475
}
7576

77+
$pdo = $connector->getPdo($config, 'db');
78+
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
79+
7680
$loader = LoaderFactory::getInstance()->getLoader($filename);
7781
$toSchema = $loader->loadSchema($filename);
7882

0 commit comments

Comments
 (0)