Skip to content

Commit 3dcc87e

Browse files
committed
Refactor
1 parent a0090f7 commit 3dcc87e

File tree

1 file changed

+12
-50
lines changed

1 file changed

+12
-50
lines changed

src/lib/migrations/MysqlMigrationBuilder.php

Lines changed: 12 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -276,74 +276,38 @@ public function setPositions()
276276
foreach ($this->newColumns as $columnName => $column) {
277277
/** @var \cebe\yii2openapi\db\ColumnSchema $column */
278278

279+
if (!$column->fromPosition || !$column->toPosition) {
280+
continue;
281+
}
282+
279283
if (count($onlyColumnNames) !== count($haveNamesOnlyColNames)) {
280284
// check if only new columns are added without any explicit position change
281-
$onlyColumnNamesCopy = $onlyColumnNames;
282285
$columnsForCreate = array_diff($onlyColumnNames, $haveNamesOnlyColNames);
283-
foreach ($columnsForCreate as $key => $value) {
284-
$at = array_search($value, $onlyColumnNames);
285-
if (is_int($at)) {
286-
unset($onlyColumnNamesCopy[$at]);
286+
if ($columnsForCreate) {
287+
if ($haveNamesOnlyColNames === array_values(array_diff($onlyColumnNames, $columnsForCreate))) {
288+
continue;
287289
}
288290
}
289-
if ($onlyColumnNamesCopy === $onlyColumnNames) {
290-
continue;
291-
}
292291

293-
$haveNamesOnlyColNamesCopy = $haveNamesOnlyColNames;
292+
// check if only existing columns are deleted without any explicit position change
294293
$columnsForDrop = array_diff($haveNamesOnlyColNames, $onlyColumnNames);
295-
foreach ($columnsForDrop as $key => $value) {
296-
$at = array_search($value, $haveNamesOnlyColNames);
297-
if (is_int($at)) {
298-
unset($haveNamesOnlyColNamesCopy[$at]);
294+
if ($columnsForDrop) {
295+
if ($onlyColumnNames === array_values(array_diff($haveNamesOnlyColNames, $columnsForDrop))) {
296+
continue;
299297
}
300298
}
301-
if ($haveNamesOnlyColNamesCopy === $haveNamesOnlyColNames) {
302-
continue;
303-
}
304-
}
305-
306-
307-
if (!$column->fromPosition || !$column->toPosition) {
308-
continue;
309299
}
310300

311-
if (
312-
is_int(array_search([$column->toPosition['index'], $column->fromPosition['index']], $takenIndices))
313-
) {
301+
if (is_int(array_search([$column->toPosition['index'], $column->fromPosition['index']], $takenIndices))) {
314302
continue;
315303
}
316304
if ($column->fromPosition === $column->toPosition) {
317305
continue;
318306
}
319-
320-
// TODO this does not look correct
321-
// if (!in_array($column->fromPosition['after'], $onlyColumnNames) && !in_array($column->fromPosition['before'], $onlyColumnNames)) { // after and before column are deleted
322-
// continue;
323-
// }
324-
325-
// TODO this does not look correct
326-
// if (!in_array($column->toPosition['after'], $haveNamesOnlyColNames) && !in_array($column->toPosition['before'], $haveNamesOnlyColNames)) { // after and before column are added just now
327-
// continue;
328-
// }
329-
330307
if ($column->fromPosition['index'] === $column->toPosition['index']) {
331308
continue;
332309
}
333310

334-
// if ($this->checkAfterPosition($column)) {
335-
// continue;
336-
// }
337-
// if ($this->checkBeforePosition($column)) {
338-
// continue;
339-
// }
340-
341-
// if ($column->fromPosition['before'] === $column->toPosition['before']
342-
//// && $column->fromPosition['index'] !== $column->toPosition['index']
343-
// ) {
344-
// continue;
345-
// }
346-
347311
$column->isPositionReallyChanged = true;
348312
$takenIndices[] = [$column->fromPosition['index'], $column->toPosition['index']];
349313
}
@@ -352,7 +316,6 @@ public function setPositions()
352316
public function checkAfterPosition($column)
353317
{
354318
if ($column->fromPosition['after'] === $column->toPosition['after']
355-
// && $column->fromPosition['index'] !== $column->toPosition['index']
356319
) {
357320
$afterColName = $column->toPosition['after'];
358321
$afterCol = $this->newColumns[$afterColName] ?? null;
@@ -372,7 +335,6 @@ public function checkAfterPosition($column)
372335
public function checkBeforePosition($column)
373336
{
374337
if ($column->fromPosition['before'] === $column->toPosition['before']
375-
// && $column->fromPosition['index'] !== $column->toPosition['index']
376338
) {
377339
$beforeColName = $column->toPosition['before'];
378340
$beforeCol = $this->newColumns[$beforeColName] ?? null;

0 commit comments

Comments
 (0)