Esempio n. 1
0
 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];
 }
Esempio n. 2
0
 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]);
 }