|
@@ 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 |
|
$this->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 |
|
$this->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 |
|
$this->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 |
|
$this->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 |
|
$this->assertInstanceOf('Doctrine\DBAL\Schema\TableDiff', $diff, "There should be a difference and not false being returned from the table comparison"); |
| 128 |
|
$this->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 |
|
$this->assertFalse($tableFinal->getColumn('id')->getAutoincrement()); |
| 133 |
|
} |
| 134 |
|
|
| 135 |
|
/** |
| 136 |
|
* @group DBAL-75 |