Merge pull request #8286 from wilr/patches/mysql-create-table-issue

Check database has table before altering.
This commit is contained in:
Robbie Averill 2018-10-03 13:24:59 +02:00 committed by GitHub
commit d2b646cc13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,6 +4,7 @@ namespace SilverStripe\ORM\Connect;
use SilverStripe\Core\Config\Config; use SilverStripe\Core\Config\Config;
use SilverStripe\Core\Convert; use SilverStripe\Core\Convert;
use LogicException;
/** /**
* Represents schema management object for MySQL * Represents schema management object for MySQL
@ -139,9 +140,21 @@ class MySQLSchemaManager extends DBSchemaManager
return $info && strtoupper($info['Table_type']) == 'VIEW'; 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) 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) public function checkAndRepairTable($tableName)