@@ 87-111 (lines=25) @@ | ||
84 | /** |
|
85 | * @group DBAL-37 |
|
86 | */ |
|
87 | public function testAlterTableAutoIncrementAdd() |
|
88 | { |
|
89 | $tableFrom = new \Doctrine\DBAL\Schema\Table('autoinc_table_add'); |
|
90 | $column = $tableFrom->addColumn('id', 'integer'); |
|
91 | $this->_sm->createTable($tableFrom); |
|
92 | $tableFrom = $this->_sm->listTableDetails('autoinc_table_add'); |
|
93 | self::assertFalse($tableFrom->getColumn('id')->getAutoincrement()); |
|
94 | ||
95 | $tableTo = new \Doctrine\DBAL\Schema\Table('autoinc_table_add'); |
|
96 | $column = $tableTo->addColumn('id', 'integer'); |
|
97 | $column->setAutoincrement(true); |
|
98 | ||
99 | $c = new \Doctrine\DBAL\Schema\Comparator(); |
|
100 | $diff = $c->diffTable($tableFrom, $tableTo); |
|
101 | $sql = $this->_conn->getDatabasePlatform()->getAlterTableSQL($diff); |
|
102 | self::assertEquals(array( |
|
103 | "CREATE SEQUENCE autoinc_table_add_id_seq", |
|
104 | "SELECT setval('autoinc_table_add_id_seq', (SELECT MAX(id) FROM autoinc_table_add))", |
|
105 | "ALTER TABLE autoinc_table_add ALTER id SET DEFAULT nextval('autoinc_table_add_id_seq')", |
|
106 | ), $sql); |
|
107 | ||
108 | $this->_sm->alterTable($diff); |
|
109 | $tableFinal = $this->_sm->listTableDetails('autoinc_table_add'); |
|
110 | self::assertTrue($tableFinal->getColumn('id')->getAutoincrement()); |
|
111 | } |
|
112 | ||
113 | /** |
|
114 | * @group DBAL-37 |
|
@@ 116-136 (lines=21) @@ | ||
113 | /** |
|
114 | * @group DBAL-37 |
|
115 | */ |
|
116 | public function testAlterTableAutoIncrementDrop() |
|
117 | { |
|
118 | $tableFrom = new \Doctrine\DBAL\Schema\Table('autoinc_table_drop'); |
|
119 | $column = $tableFrom->addColumn('id', 'integer'); |
|
120 | $column->setAutoincrement(true); |
|
121 | $this->_sm->createTable($tableFrom); |
|
122 | $tableFrom = $this->_sm->listTableDetails('autoinc_table_drop'); |
|
123 | self::assertTrue($tableFrom->getColumn('id')->getAutoincrement()); |
|
124 | ||
125 | $tableTo = new \Doctrine\DBAL\Schema\Table('autoinc_table_drop'); |
|
126 | $column = $tableTo->addColumn('id', 'integer'); |
|
127 | ||
128 | $c = new \Doctrine\DBAL\Schema\Comparator(); |
|
129 | $diff = $c->diffTable($tableFrom, $tableTo); |
|
130 | self::assertInstanceOf('Doctrine\DBAL\Schema\TableDiff', $diff, "There should be a difference and not false being returned from the table comparison"); |
|
131 | self::assertEquals(array("ALTER TABLE autoinc_table_drop ALTER id DROP DEFAULT"), $this->_conn->getDatabasePlatform()->getAlterTableSQL($diff)); |
|
132 | ||
133 | $this->_sm->alterTable($diff); |
|
134 | $tableFinal = $this->_sm->listTableDetails('autoinc_table_drop'); |
|
135 | self::assertFalse($tableFinal->getColumn('id')->getAutoincrement()); |
|
136 | } |
|
137 | ||
138 | /** |
|
139 | * @group DBAL-75 |