Jonathan
@Jonathan
front-end developer

Как с помощью artisan осуществить migrate:rollback или :refresh только одной таблицы?

Может мой вопрос кажется банальным, но я реально ничего не могу нагуглить по этому поводу.
  • Вопрос задан
  • 715 просмотров
Решения вопроса 1
Важно понять, что есть только два пути и они оба не укладываются в предложенные вами же методы решения.

Вы можете:
  1. Выполнить необходимые вам манипуляции в рамках новой миграции. Это наиболее разумно.
  2. Хакнуть существующие миграции.

Помните о том, что миграции группируются. И за одну команду может быть откачено несколько миграций.

Рассмотрим подробнее второе решение:
Оно действительно только в том случае, если искомая таблица в миграции одна.

Вопрос решается с помощью модификации таблицы `migrations` в базе данных.
Измените значение `batch` таким образом, чтобы искомая миграция стала последней в списке и была единственной с таким значением `batch`. Сортировка в таблице `migrations` идет по полю `batch` по возрастанию.

После этого вы сможете выполнить команду `php artisan migrate:rollback`, которая откатит искомую миграцию.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
php artisan migrate:rollback --pretend отследить изминения. как вариант
Вообще если миграции расписаны правильно например
users_table
users_table_add_role
users_table_add_is_active
users_table_add_last_visited_at

то проблем с откатами не будет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы