migrations: refuse to apply empty schema files
This commit is contained in:
parent
4ede76280b
commit
8f8ca49e4b
|
@ -82,30 +82,36 @@ class Db_Migrations {
|
||||||
else
|
else
|
||||||
Debug::log("Starting migration to $version...", Debug::LOG_VERBOSE);
|
Debug::log("Starting migration to $version...", Debug::LOG_VERBOSE);
|
||||||
|
|
||||||
// mysql doesn't support transactions for DDL statements
|
$lines = $this->get_lines($version);
|
||||||
if (Config::get(Config::DB_TYPE) != "mysql")
|
|
||||||
$this->pdo->beginTransaction();
|
|
||||||
|
|
||||||
foreach ($this->get_lines($version) as $line) {
|
if (count($lines) > 0) {
|
||||||
Debug::log($line, Debug::LOG_EXTENDED);
|
// mysql doesn't support transactions for DDL statements
|
||||||
try {
|
if (Config::get(Config::DB_TYPE) != "mysql")
|
||||||
$this->pdo->query($line);
|
$this->pdo->beginTransaction();
|
||||||
} catch (PDOException $e) {
|
|
||||||
Debug::log("Failed on line: $line", Debug::LOG_VERBOSE);
|
foreach ($lines as $line) {
|
||||||
throw $e;
|
Debug::log($line, Debug::LOG_EXTENDED);
|
||||||
|
try {
|
||||||
|
$this->pdo->query($line);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
Debug::log("Failed on line: $line", Debug::LOG_VERBOSE);
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($version == 0 && $this->base_is_latest)
|
||||||
|
$this->set_version($this->get_max_version());
|
||||||
|
else
|
||||||
|
$this->set_version($version);
|
||||||
|
|
||||||
|
if (Config::get(Config::DB_TYPE) != "mysql")
|
||||||
|
$this->pdo->commit();
|
||||||
|
|
||||||
|
Debug::log("Migration finished, current version: " . $this->get_version(), Debug::LOG_VERBOSE);
|
||||||
|
} else {
|
||||||
|
Debug::log("Migration failed: schema file is empty or missing.", Debug::LOG_VERBOSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($version == 0 && $this->base_is_latest)
|
|
||||||
$this->set_version($this->get_max_version());
|
|
||||||
else
|
|
||||||
$this->set_version($version);
|
|
||||||
|
|
||||||
if (Config::get(Config::DB_TYPE) != "mysql")
|
|
||||||
$this->pdo->commit();
|
|
||||||
|
|
||||||
Debug::log("Migration finished, current version: " . $this->get_version(), Debug::LOG_VERBOSE);
|
|
||||||
|
|
||||||
} catch (PDOException $e) {
|
} catch (PDOException $e) {
|
||||||
Debug::log("Migration failed: " . $e->getMessage(), Debug::LOG_VERBOSE);
|
Debug::log("Migration failed: " . $e->getMessage(), Debug::LOG_VERBOSE);
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue