/** * update * * @return static */ public function update() { foreach ($this->columns as $column) { $length = $column->getLength(); $length = $length ? '(' . $length . ')' : null; $query = MysqlQueryBuilder::addColumn($this->table, $column->getName(), $column->getType() . $length, $column->getSigned(), $column->getAllowNull(), $column->getDefault(), $column->getPosition(), $column->getComment()); $this->db->setQuery($query)->execute(); } foreach ($this->indexes as $index) { $query = MysqlQueryBuilder::addIndex($this->table, $index->getType(), $index->getName(), $index->getColumns(), $index->getComment()); $this->db->setQuery($query)->execute(); } return $this; }
/** * Method to test addColumn(). * * @return void * * @covers Windwalker\Query\Mysql\MysqlQueryBuilder::addColumn */ public function testAddColumn() { $expected = "ALTER TABLE {$this->qn('foo')} ADD {$this->qn('bar')} int(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Test' FIRST"; $actual = MysqlQueryBuilder::addColumn('foo', 'bar', 'int(11)', false, false, '1', 'FIRST', 'Test'); $this->assertEquals($this->format($expected), $this->format($actual)); }