Миграция работает в пакетном режиме, поэтому предположим, что у вас была миграция для:
- Таблица 1
- Таблица 2
- Таблица 3
и вы запустили php artisan migrate
, он создаст эти таблицы в одном пакете, назовем его Batch 1
Теперь предположим, что вы добавили еще одну миграцию для новой таблицы:
На этот раз, когда вы запускаете php artisan migrate
, внутренне проверяется состояние, чтобы увидеть, какие были созданы новые миграции таблиц, которые еще не находятся в каком-либо пакете.
Это будетОтметьте Пакет 1, так как это единственный пакет, созданный до сих пор и создающий новые таблицы под вторым пакетом, давайте назовем его Batch 2
Так что это будет что-то вроде:
Таблица 1 |
Таблица 2 |-> Пакет 1
Таблица 3 |
Таблица 4 |-> Пакет 2
и так далее ...
Итак, вы, должно быть, сделали что-то другое, чем я перечислил выше.
Если вы создали таблицувручную в базе данных и затем также созданной миграции, конечно, php artisan migrate
выдаст ошибку, что table already exists
, в этом случае вам не нужно запускать миграцию, поскольку у вас уже есть таблица.
В любом случае запустите:php artisan migrate:status
, который сообщит вам точное состояние миграции и проблемы с ней.
Вы также можете проверить таблицу migrations
в вашей БД, которая также определяет пакеты, в которых были созданы таблицы.