Как перенести дополнительные таблицы в laravel? - PullRequest
1 голос
/ 16 октября 2019

У меня есть ситуация, когда я уже перенес свои таблицы в базу данных. Теперь я создал еще одну таблицу и хочу нажать на нее также, чтобы я снова запустил php artisan migrate, но на этот раз он выдает ошибку предыдущей таблицы, которая уже существует,и я не могу откат и мигрировать снова, у меня есть данные в других моих таблицах

Так что я могу сделать, есть ли другой способ?

Я пытался

php artisan migrate

1 Ответ

1 голос
/ 16 октября 2019

Миграция работает в пакетном режиме, поэтому предположим, что у вас была миграция для:

  • Таблица 1
  • Таблица 2
  • Таблица 3

и вы запустили php artisan migrate, он создаст эти таблицы в одном пакете, назовем его Batch 1

Теперь предположим, что вы добавили еще одну миграцию для новой таблицы:

  • Таблица 4

На этот раз, когда вы запускаете php artisan migrate, внутренне проверяется состояние, чтобы увидеть, какие были созданы новые миграции таблиц, которые еще не находятся в каком-либо пакете.

Это будетОтметьте Пакет 1, так как это единственный пакет, созданный до сих пор и создающий новые таблицы под вторым пакетом, давайте назовем его Batch 2

Так что это будет что-то вроде:

Таблица 1 |
Таблица 2 |-> Пакет 1
Таблица 3 |

Таблица 4 |-> Пакет 2

и так далее ...

Итак, вы, должно быть, сделали что-то другое, чем я перечислил выше.

Если вы создали таблицувручную в базе данных и затем также созданной миграции, конечно, php artisan migrate выдаст ошибку, что table already exists, в этом случае вам не нужно запускать миграцию, поскольку у вас уже есть таблица.

В любом случае запустите:php artisan migrate:status, который сообщит вам точное состояние миграции и проблемы с ней.

Вы также можете проверить таблицу migrations в вашей БД, которая также определяет пакеты, в которых были созданы таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...