public function down() { $artists = $this->table('artists'); $artists->dropForeignKey('user_id')->removeColumn('user_id')->save(); $definition = new Phinx\Db\Table\Column(); $definition->setType('integer'); $definition->setLimit('10'); $users = $this->table('users'); $users->changeColumn('id', $definition); }
public function testAddColumnWithAnInvalidColumnType() { try { $adapter = new MysqlAdapter(array()); $column = new \Phinx\Db\Table\Column(); $column->setType('badtype'); $table = new \Phinx\Db\Table('ntable', array(), $adapter); $table->addColumn($column); } catch (\InvalidArgumentException $e) { $this->assertInstanceOf('InvalidArgumentException', $e, 'Expected exception of type InvalidArgumentException, got ' . get_class($e)); $this->assertRegExp('/^An invalid column type /', $e->getMessage()); } }
public function testChangeColumn() { $table = new \Phinx\Db\Table('t', array(), $this->adapter); $table->addColumn('column1', 'string')->save(); $this->assertTrue($this->adapter->hasColumn('t', 'column1')); $newColumn1 = new \Phinx\Db\Table\Column(); $newColumn1->setType('string'); $table->changeColumn('column1', $newColumn1); $this->assertTrue($this->adapter->hasColumn('t', 'column1')); $newColumn2 = new \Phinx\Db\Table\Column(); $newColumn2->setName('column2')->setType('string')->setNull(true); $table->changeColumn('column1', $newColumn2); $this->assertFalse($this->adapter->hasColumn('t', 'column1')); $this->assertTrue($this->adapter->hasColumn('t', 'column2')); $columns = $this->adapter->getColumns('t'); foreach ($columns as $column) { if ($column->getName() == 'column2') { $this->assertTrue($column->isNull()); } } }
public function testChangeColumn() { $table = new \Phinx\Db\Table('t', array(), $this->adapter); $table->addColumn('column1', 'string')->save(); $this->assertTrue($this->adapter->hasColumn('t', 'column1')); $newColumn1 = new \Phinx\Db\Table\Column(); $newColumn1->setType('string'); $table->changeColumn('column1', $newColumn1); $this->assertTrue($this->adapter->hasColumn('t', 'column1')); $newColumn2 = new \Phinx\Db\Table\Column(); $newColumn2->setName('column2')->setType('string'); $table->changeColumn('column1', $newColumn2); $this->assertFalse($this->adapter->hasColumn('t', 'column1')); $this->assertTrue($this->adapter->hasColumn('t', 'column2')); }
public function testChangeColumnDefaultToZero() { $table = new \Phinx\Db\Table('t', array(), $this->adapter); $table->addColumn('column1', 'integer')->save(); $newColumn1 = new \Phinx\Db\Table\Column(); $newColumn1->setType('string')->setDefault(0); $table->changeColumn('column1', $newColumn1); $columns = $this->adapter->getColumns('t'); $this->assertSame(0, $columns['column1']->getDefault()); }