protected function dropColumn() { $restore = $this->getRestoreFileName(); if (Sabel_Db_Migration_Manager::isUpgrade()) { if (is_file($restore)) { unlink($restore); } $columns = $this->getReader()->readDropColumn()->getColumns(); $schema = $this->getSchema()->getTable($this->tblName); $sColumns = $schema->getColumns(); $writer = new Sabel_Db_Migration_Writer($restore); $writer->writeColumns($schema, $columns); $writer->close(); foreach ($columns as $column) { if (isset($sColumns[$column])) { unset($sColumns[$column]); } else { $warning = "column '{$column}' does not exist. (SKIP)"; Sabel_Console::warning($warning); } } $this->dropColumnsAndRemakeTable($sColumns, $schema); } else { $columns = $this->getReader($restore)->readAddColumn()->getColumns(); $this->execAddColumn($columns); } }
protected function drop() { $restore = $this->getRestoreFileName(); if (Sabel_Db_Migration_Manager::isUpgrade()) { if (is_file($restore)) { unlink($restore); } $schema = $this->getSchema()->getTable($this->tblName); $writer = new Sabel_Db_Migration_Writer($restore); $writer->writeTable($schema)->close(); $this->executeQuery("DROP TABLE " . $this->quoteIdentifier($this->tblName)); $this->dropSequence($schema->getSequenceColumn()); } else { $this->createTable($restore); } }
public function drop() { if (Sabel_Db_Migration_Manager::isUpgrade()) { $restore = $this->getRestoreFileName(); if (is_file($restore)) { unlink($restore); } $schema = $this->getSchema(); $tblSchema = $schema->getTable($this->tblName); $engine = $schema->getTableEngine($this->tblName); $writer = new Sabel_Db_Migration_Writer($restore); $writer->writeTable($tblSchema); $writer->write('$create->options("engine", "' . $engine . '");'); $writer->write(PHP_EOL)->close(); $this->executeQuery("DROP TABLE " . $this->quoteIdentifier($this->tblName)); } else { $this->createTable($this->getRestoreFileName()); } }
protected function changeColumn() { $schema = $this->getSchema()->getTable($this->tblName); $restore = $this->getRestoreFileName(); if (Sabel_Db_Migration_Manager::isUpgrade()) { if (is_file($restore)) { unlink($restore); } $names = array(); $columns = $this->getReader()->readChangeColumn()->getColumns(); foreach ($columns as $column) { $names[] = $column->name; } $writer = new Sabel_Db_Migration_Writer($restore); $writer->writeColumns($schema, $names, '$change')->close(); $this->changeColumnUpgrade($columns, $schema); } else { $columns = $this->getReader($restore)->readChangeColumn()->getColumns(); $this->changeColumnDowngrade($columns, $schema); } }