protected function dropColumns(Table $table) { $query = 'ALTER TABLE ' . $this->escapeString($table->getName()) . ' '; $columns = []; foreach ($table->getColumnsToDrop() as $column) { $columns[] = 'DROP COLUMN ' . $this->escapeString($column); } $query .= implode(',', $columns) . ';'; return $query; }
public function testColumns() { $table = new Table('test'); $table->addPrimary(true); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->addColumn(new Column('title', 'string'))); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->addColumn(new Column('total', 'int'))); $this->assertCount(3, $table->getColumns()); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->changeColumn('title', new Column('new_title', 'string'))); $this->assertCount(3, $table->getColumns()); $this->assertCount(0, $table->getColumnsToChange()); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->changeColumn('alias', new Column('new_alias', 'string'))); $this->assertCount(3, $table->getColumns()); $this->assertCount(1, $table->getColumnsToChange()); $this->assertCount(0, $table->getColumnsToDrop()); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->dropColumn('title')); $this->assertCount(3, $table->getColumns()); $this->assertCount(1, $table->getColumnsToDrop()); }