mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Check database has table before altering.
Work around to prevent several issues with silverstripe-framework#4451 and cwp#0031726. Throws a LogicException if the table does not exist.
This commit is contained in:
parent
b984959170
commit
9ec77ab9d3
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user