Удаление таблиц, типов и представлений с помощью команды wipe artisan в Laravel 6


Если вы ищете быстрый способ отбросить все таблицы, их типы и представления, и если вы используете Laravel 6.x, вы можете использовать эту небольшую ремесленную команду под названием db:wipe чтобы сделать то же самое.

Этот запрос на вытягивание # 29620 по Антон Комарев адды db:wipe команда ремесленника, которую вы используете, как так.

$ php artisan db:wipe {--database=} {--drop-views} {--drop-types} {--force}

Ниже приводится объяснение того, что будет делать каждый из вариантов.

  • database – Подключение к базе данных для использования
  • drop-views – отбросить все таблицы и представления
  • drop-types – Удалить все таблицы и типы (только Postgres)
  • force – Принудительно запустить операцию во время производства

По мнению автора этого PR, это может быть полезно в сценариях, где вам нужен быстрый способ отбросить все таблицы, представления и типы. Обычно в ситуациях, когда вы автоматизировали процесс миграции и резервного копирования. Это предотвращает повреждение базы данных из-за внешних ключей и позволяет осуществить полное восстановление резервной копии на уровне приложения.

Далее он добавляет,

Можно сказать, что есть команда migrate: reset. Да, это так, но он очень медленный во многих миграциях, потому что он перебирает таблицу миграций и выполняет метод down для каждой миграции. Но более важно то, что метод down может отсутствовать, если миграции предназначены только для повышения или если в них нет отбрасываемых внешних ключей. Сброс хода будет прерван, а база данных повреждена. Вы не сможете запустить миграцию: выполните сброс еще раз, и вы будете вынуждены удалить все таблицы, представления и типы непосредственно в базе данных.

Это изменение также повлияло на db:fresh функциональность команды внутри. Теперь будет просто звонить db:wipe а потом migrate,