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);
 }
Beispiel #2
0
 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]);
 }
Beispiel #3
0
 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());
 }
Beispiel #4
0
 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());
         }
     }
 }
Beispiel #6
0
 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']);
 }
Beispiel #7
0
 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());
 }