Пример #1
0
 public function dropForeignKey()
 {
     $refTable = new \Phinx\Db\Table('ref_table', array(), $this->adapter);
     $refTable->addColumn('field1', 'string')->save();
     $table = new \Phinx\Db\Table('table', array(), $this->adapter);
     $table->addColumn('ref_table_id', 'integer')->save();
     $fk = new \Phinx\Db\Table\ForeignKey();
     $fk->setReferencedTable($refTable)->setColumns(array('ref_table_id'))->setReferencedColumns(array('id'));
     $this->adapter->addForeignKey($table, $fk);
     $this->adapter->dropForeignKey($table->getName(), array('ref_table_id'));
     $this->assertFalse($this->adapter->hasForeignKey($table->getName(), array('ref_table_id')));
 }
Пример #2
0
 public function testDropForeignKey()
 {
     $refTable = new \Phinx\Db\Table('ref_table', array(), $this->adapter);
     $refTable->addColumn('field1', 'string')->save();
     $table = new \Phinx\Db\Table('table', array(), $this->adapter);
     $table->addColumn('ref_table_id', 'integer')->addColumn('ref_table_field', 'string')->save();
     $fk = new \Phinx\Db\Table\ForeignKey();
     $fk->setReferencedTable($refTable)->setColumns(array('ref_table_id'))->setReferencedColumns(array('id'));
     $secondFk = new \Phinx\Db\Table\ForeignKey();
     $secondFk->setReferencedTable($refTable)->setColumns(array('ref_table_field'))->setReferencedColumns(array('field1'))->setOptions(array('update' => 'CASCADE', 'delete' => 'CASCADE'));
     $this->adapter->addForeignKey($table, $fk);
     $this->assertTrue($this->adapter->hasForeignKey($table->getName(), array('ref_table_id')));
     $this->adapter->dropForeignKey($table->getName(), array('ref_table_id'));
     $this->assertFalse($this->adapter->hasForeignKey($table->getName(), array('ref_table_id')));
     $this->adapter->addForeignKey($table, $secondFk);
     $this->adapter->addForeignKey($table, $fk);
     $this->assertTrue($this->adapter->hasForeignKey($table->getName(), array('ref_table_id')));
     $this->assertTrue($this->adapter->hasForeignKey($table->getName(), array('ref_table_field')));
     $this->adapter->dropForeignKey($table->getName(), array('ref_table_field'));
     $this->assertTrue($this->adapter->hasTable($table->getName()));
 }