|
@@ 84-108 (lines=25) @@
|
| 81 |
|
/** |
| 82 |
|
* @group DBAL-37 |
| 83 |
|
*/ |
| 84 |
|
public function testAlterTableAutoIncrementAdd() |
| 85 |
|
{ |
| 86 |
|
$tableFrom = new \Doctrine\DBAL\Schema\Table('autoinc_table_add'); |
| 87 |
|
$column = $tableFrom->addColumn('id', 'integer'); |
| 88 |
|
$this->_sm->createTable($tableFrom); |
| 89 |
|
$tableFrom = $this->_sm->listTableDetails('autoinc_table_add'); |
| 90 |
|
self::assertFalse($tableFrom->getColumn('id')->getAutoincrement()); |
| 91 |
|
|
| 92 |
|
$tableTo = new \Doctrine\DBAL\Schema\Table('autoinc_table_add'); |
| 93 |
|
$column = $tableTo->addColumn('id', 'integer'); |
| 94 |
|
$column->setAutoincrement(true); |
| 95 |
|
|
| 96 |
|
$c = new \Doctrine\DBAL\Schema\Comparator(); |
| 97 |
|
$diff = $c->diffTable($tableFrom, $tableTo); |
| 98 |
|
$sql = $this->_conn->getDatabasePlatform()->getAlterTableSQL($diff); |
| 99 |
|
self::assertEquals(array( |
| 100 |
|
"CREATE SEQUENCE autoinc_table_add_id_seq", |
| 101 |
|
"SELECT setval('autoinc_table_add_id_seq', (SELECT MAX(id) FROM autoinc_table_add))", |
| 102 |
|
"ALTER TABLE autoinc_table_add ALTER id SET DEFAULT nextval('autoinc_table_add_id_seq')", |
| 103 |
|
), $sql); |
| 104 |
|
|
| 105 |
|
$this->_sm->alterTable($diff); |
| 106 |
|
$tableFinal = $this->_sm->listTableDetails('autoinc_table_add'); |
| 107 |
|
self::assertTrue($tableFinal->getColumn('id')->getAutoincrement()); |
| 108 |
|
} |
| 109 |
|
|
| 110 |
|
/** |
| 111 |
|
* @group DBAL-37 |
|
@@ 113-133 (lines=21) @@
|
| 110 |
|
/** |
| 111 |
|
* @group DBAL-37 |
| 112 |
|
*/ |
| 113 |
|
public function testAlterTableAutoIncrementDrop() |
| 114 |
|
{ |
| 115 |
|
$tableFrom = new \Doctrine\DBAL\Schema\Table('autoinc_table_drop'); |
| 116 |
|
$column = $tableFrom->addColumn('id', 'integer'); |
| 117 |
|
$column->setAutoincrement(true); |
| 118 |
|
$this->_sm->createTable($tableFrom); |
| 119 |
|
$tableFrom = $this->_sm->listTableDetails('autoinc_table_drop'); |
| 120 |
|
self::assertTrue($tableFrom->getColumn('id')->getAutoincrement()); |
| 121 |
|
|
| 122 |
|
$tableTo = new \Doctrine\DBAL\Schema\Table('autoinc_table_drop'); |
| 123 |
|
$column = $tableTo->addColumn('id', 'integer'); |
| 124 |
|
|
| 125 |
|
$c = new \Doctrine\DBAL\Schema\Comparator(); |
| 126 |
|
$diff = $c->diffTable($tableFrom, $tableTo); |
| 127 |
|
self::assertInstanceOf('Doctrine\DBAL\Schema\TableDiff', $diff, "There should be a difference and not false being returned from the table comparison"); |
| 128 |
|
self::assertEquals(array("ALTER TABLE autoinc_table_drop ALTER id DROP DEFAULT"), $this->_conn->getDatabasePlatform()->getAlterTableSQL($diff)); |
| 129 |
|
|
| 130 |
|
$this->_sm->alterTable($diff); |
| 131 |
|
$tableFinal = $this->_sm->listTableDetails('autoinc_table_drop'); |
| 132 |
|
self::assertFalse($tableFinal->getColumn('id')->getAutoincrement()); |
| 133 |
|
} |
| 134 |
|
|
| 135 |
|
/** |
| 136 |
|
* @group DBAL-75 |
|
@@ 423-444 (lines=22) @@
|
| 420 |
|
self::assertEquals('(-1)', $columns['col_string']->getDefault()); |
| 421 |
|
} |
| 422 |
|
|
| 423 |
|
public function testAlterTableAutoIncrementBigInt() |
| 424 |
|
{ |
| 425 |
|
$tableFrom = new \Doctrine\DBAL\Schema\Table('autoinc_table_bitgint'); |
| 426 |
|
$column = $tableFrom->addColumn('id', 'integer'); |
| 427 |
|
$column->setAutoincrement(true); |
| 428 |
|
$this->_sm->createTable($tableFrom); |
| 429 |
|
$tableFrom = $this->_sm->listTableDetails('autoinc_table_bitgint'); |
| 430 |
|
self::assertTrue($tableFrom->getColumn('id')->getAutoincrement()); |
| 431 |
|
|
| 432 |
|
$tableTo = new \Doctrine\DBAL\Schema\Table('autoinc_table_bitgint'); |
| 433 |
|
$column = $tableTo->addColumn('id', 'bigint'); |
| 434 |
|
$column->setAutoincrement(true); |
| 435 |
|
|
| 436 |
|
$c = new \Doctrine\DBAL\Schema\Comparator(); |
| 437 |
|
$diff = $c->diffTable($tableFrom, $tableTo); |
| 438 |
|
self::assertInstanceOf('Doctrine\DBAL\Schema\TableDiff', $diff, "There should be a difference and not false being returned from the table comparison"); |
| 439 |
|
self::assertEquals(array("ALTER TABLE autoinc_table_bitgint ALTER id TYPE BIGINT"), $this->_conn->getDatabasePlatform()->getAlterTableSQL($diff)); |
| 440 |
|
|
| 441 |
|
$this->_sm->alterTable($diff); |
| 442 |
|
$tableFinal = $this->_sm->listTableDetails('autoinc_table_bitgint'); |
| 443 |
|
self::assertTrue($tableFinal->getColumn('id')->getAutoincrement()); |
| 444 |
|
} |
| 445 |
|
} |
| 446 |
|
|
| 447 |
|
class MoneyType extends Type |