Я хочу использовать Phinx для управления своей базой данных. У меня уже есть база данных с настройкой таблиц, поэтому я написал миграцию, чтобы отразить то, что уже есть. При тестировании из пустой базы данных все работает хорошо, но в заполненной базе данных я получаю ошибку SQLSTATE[42S01]: Base table or view already exists:
.
Есть ли команда или конфигурация, которая скажет Phinx заполнить таблицу phinxlog, как если бы миграция была запущена ранее? Обратите внимание, что в таблицах в prod есть данные, поэтому удаление таблиц любым способом не сработает.
🤔 А знаете ли вы, что...
PHP можно использовать для создания API и веб-служб.
В ваших первоначальных миграциях вы можете проверить, существует ли уже таблица:
https://book.cakephp.org/phinx/0/en/migrations.html#determining-whether-a-table-exists просто измените логику на if (!$exists)
.
Это предполагает, что существующая таблица соответствует вашим миграциям, но похоже, что вы проверили это, и она должна заполнить таблицу phinxlog.
Если какая-либо из ваших новых миграций включает новые столбцы, а не только новые таблицы, вы также можете проверить, существуют ли столбцы, с помощью https://book.cakephp.org/phinx/0/en/migrations.html#checking-whether-a- столбец существует