@@ 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 |