protected function dropIndexes(Table $table) { if (empty($table->getIndexesToDrop())) { return []; } $query = 'ALTER TABLE ' . $this->escapeString($table->getName()) . ' '; $indexes = []; foreach ($table->getIndexesToDrop() as $index) { $indexes[] = 'DROP INDEX ' . $this->escapeString($index); } $query .= implode(',', $indexes) . ';'; return [$query]; }
public function testIndexes() { $table = new Table('test'); $this->assertCount(0, $table->getIndexes()); $table->addPrimary(true); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->addIndex(new Index('title', 'title', 'unique'))); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->addIndex(new Index(['title', 'alias'], 'title_alias'))); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->addIndex(new Index('bodytext', 'bodytext', 'fulltext'))); $this->assertCount(3, $table->getIndexes()); $this->assertCount(0, $table->getIndexesToDrop()); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->dropIndex('title_alias')); $this->assertCount(1, $table->getIndexesToDrop()); $this->assertEquals('title_alias', $table->getIndexesToDrop()[0]); }