Fixed bugs in db/build (merged from gsoc branch, r40402)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@40408 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Andrew O'Neil 2007-08-17 04:44:44 +00:00
parent 23dab38035
commit ff00abd449
2 changed files with 14 additions and 8 deletions

View File

@ -175,13 +175,15 @@ abstract class Database extends Object {
* if it doesn't already exist * if it doesn't already exist
*/ */
protected function transInitTable($table) { protected function transInitTable($table) {
if(!$this->schemaUpdateTransaction[$table]) $this->schemaUpdateTransaction[$table] = array( if(!isset($this->schemaUpdateTransaction[$table])) {
'command' => 'alter', $this->schemaUpdateTransaction[$table] = array(
'newFields' => array(), 'command' => 'alter',
'newIndexes' => array(), 'newFields' => array(),
'alteredFields' => array(), 'newIndexes' => array(),
'alteredIndexes' => array(), 'alteredFields' => array(),
); 'alteredIndexes' => array(),
);
}
} }
@ -247,6 +249,8 @@ abstract class Database extends Object {
* @param string|boolean $spec The specification of the index. See requireTable() for more information. * @param string|boolean $spec The specification of the index. See requireTable() for more information.
*/ */
function requireIndex($table, $index, $spec) { function requireIndex($table, $index, $spec) {
$newTable = false;
if($spec === true) { if($spec === true) {
$spec = "($index)"; $spec = "($index)";
} }
@ -277,6 +281,8 @@ abstract class Database extends Object {
* @param string $spec The field specification. * @param string $spec The field specification.
*/ */
function requireField($table, $field, $spec) { function requireField($table, $field, $spec) {
$newTable = false;
Profiler::mark('requireField'); Profiler::mark('requireField');
// Collations didn't come in until MySQL 4.1. Anything earlier will throw a syntax error if you try and use // Collations didn't come in until MySQL 4.1. Anything earlier will throw a syntax error if you try and use
// collations. // collations.

View File

@ -178,7 +178,7 @@ class MySQLDatabase extends Database {
* @param $alteredFields Updated fields, a map of field name => field schema * @param $alteredFields Updated fields, a map of field name => field schema
* @param $alteredIndexes Updated indexes, a map of index name => index type * @param $alteredIndexes Updated indexes, a map of index name => index type
*/ */
public function alterTable($table, $newFields, $newIndexes, $alteredFields, $alteredIndexes) { public function alterTable($tableName, $newFields, $newIndexes, $alteredFields, $alteredIndexes) {
$fieldSchemas = $indexSchemas = ""; $fieldSchemas = $indexSchemas = "";
if($newFields) foreach($newFields as $k => $v) $alterList[] .= "ADD `$k` $v"; if($newFields) foreach($newFields as $k => $v) $alterList[] .= "ADD `$k` $v";