diff --git a/classes/db/migrations.php b/classes/db/migrations.php
index 26866698b0c0deb37e5f65456c904da7521caf71..4bd72bd09aa0aba7987257683d1684eebd2c1ab9 100644
--- a/classes/db/migrations.php
+++ b/classes/db/migrations.php
@@ -82,29 +82,35 @@ class Db_Migrations {
 			else
 				Debug::log("Starting migration to $version...", Debug::LOG_VERBOSE);
 
-			// mysql doesn't support transactions for DDL statements
-			if (Config::get(Config::DB_TYPE) != "mysql")
-				$this->pdo->beginTransaction();
-
-			foreach ($this->get_lines($version) as $line) {
-				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;
+			$lines = $this->get_lines($version);
+
+			if (count($lines) > 0) {
+				// mysql doesn't support transactions for DDL statements
+				if (Config::get(Config::DB_TYPE) != "mysql")
+					$this->pdo->beginTransaction();
+
+				foreach ($lines as $line) {
+					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 ($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();
+				if (Config::get(Config::DB_TYPE) != "mysql")
+					$this->pdo->commit();
 
-			Debug::log("Migration finished, current version: " . $this->get_version(), Debug::LOG_VERBOSE);
+				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);
+			}
 
 		} catch (PDOException $e) {
 			Debug::log("Migration failed: " . $e->getMessage(), Debug::LOG_VERBOSE);