diff --git a/src/ORM/Connect/MySQLSchemaManager.php b/src/ORM/Connect/MySQLSchemaManager.php index e3a9c2a13..defa17911 100644 --- a/src/ORM/Connect/MySQLSchemaManager.php +++ b/src/ORM/Connect/MySQLSchemaManager.php @@ -4,6 +4,7 @@ namespace SilverStripe\ORM\Connect; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Convert; +use LogicException; /** * Represents schema management object for MySQL @@ -139,9 +140,21 @@ class MySQLSchemaManager extends DBSchemaManager return $info && strtoupper($info['Table_type']) == 'VIEW'; } + /** + * Renames a table + * + * @param string $oldTableName + * @param string $newTableName + * @throws LogicException + * @return Query + */ public function renameTable($oldTableName, $newTableName) { - $this->query("ALTER TABLE \"$oldTableName\" RENAME \"$newTableName\""); + if (!$this->hasTable($oldTableName)) { + throw new LogicException('Table '. $oldTableName . ' does not exist.'); + } + + return $this->query("ALTER TABLE \"$oldTableName\" RENAME \"$newTableName\""); } public function checkAndRepairTable($tableName)