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 testProxyAdapterCanInvertAddColumn() { $table = new \Phinx\Db\Table('atable'); $column = new \Phinx\Db\Table\Column(); $column->setName('acolumn'); $this->adapter->addColumn($table, $column); $commands = $this->adapter->getInvertedCommands(); $this->assertEquals('dropColumn', $commands[0]['name']); $this->assertEquals('atable', $commands[0]['arguments'][0]); $this->assertContains('acolumn', $commands[0]['arguments'][1]); }
public function testAddColumnWithColumnObject() { $adapter = new MysqlAdapter([]); $column = new \Phinx\Db\Table\Column(); $column->setName('email')->setType('integer'); $table = new \Phinx\Db\Table('ntable', [], $adapter); $table->addColumn($column); $columns = $table->getPendingColumns(); $this->assertEquals('email', $columns[0]->getName()); $this->assertEquals('integer', $columns[0]->getType()); }
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 testChangeColumnWithDropDefault() { $table = new \Phinx\Db\Table('t', array(), $this->adapter); $table->addColumn('column1', 'string', array('default' => 'Test'))->save(); $columns = $this->adapter->getColumns('t'); foreach ($columns as $column) { if ($column->getName() === 'column1') { $this->assertRegExp('/Test/', $column->getDefault()); } } $newColumn1 = new \Phinx\Db\Table\Column(); $newColumn1->setName('column1')->setType('string'); $table->changeColumn('column1', $newColumn1); $columns = $this->adapter->getColumns('t'); foreach ($columns as $column) { if ($column->getName() === 'column1') { $this->assertNull($column->getDefault()); } } }
public function testChangeColumnDefaultToNull() { $table = new \Phinx\Db\Table('t', array(), $this->adapter); $table->addColumn('column1', 'string', array('default' => 'test'))->save(); $newColumn1 = new \Phinx\Db\Table\Column(); $newColumn1->setDefault(null)->setType('string'); $table->changeColumn('column1', $newColumn1); $rows = $this->adapter->fetchAll('SHOW COLUMNS FROM t'); $this->assertNull($rows[1]['Default']); }
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 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()); }