Как использовать миграцию laravel

Я использую структуру Laravel php для разработки. Я хочу использовать миграцию для создания таблиц. Это шаги, которые я сделал:

  1. Я создаю миграцию с помощью команды php artisan migrate:make create_users_table , которая создает файл миграции и в своей функции up, я записал свою схему, а затем я ее запустил и успешно выполнил.

  2. После этого я снова попробовал выполнить ту же миграцию, и в результате она показывает ошибку, которая «существует таблица».

  3. Затем я попытался использовать функцию отката, но он дал ошибку «ничего откатить».

    Итак, как отменить эту миграцию или выполнить функцию переноса. Кроме того, когда я создал новую миграцию и в функции переноса файла, я написал код для удаления таблицы, созданной моей более ранней миграцией, и я выполняю команду с параметром php artisan migrate , тем самым все миграции были выполнены (также мой предыдущий) и показывает мне ошибка, «таблица уже существует» (очевидно).

Итак, теперь я застрял, есть ли функция для выполнения специальной / конкретной миграции? Как мне это сделать?

Related of "Как использовать миграцию laravel"

Когда вы создаете миграцию с помощью миграции artisan migrate:make вас писать методы up и down . Метод down должен делать OPPOSITE того, что делает метод up .

 public function up() { Schema::create('users', function($table) { $table->increments('id'); $table->string('username'); }); } public function down() { // We DROP the table because we created it in the "up" method. Schema::drop('users'); } 

Это звучит для меня, как будто у вас есть код в вашем методе up который там не принадлежит, хотя это трудно сказать, не видя ваш код. Я предлагаю вам очистить таблицу migrations (могут быть или не быть какие-либо записи). Вам также потребуется вручную удалить таблицу, созданную с помощью миграции. Тогда вы можете начать новый.

Помните, что вы также можете использовать dropIfExists для удаления таблицы, только если она существует.

 public function down() { // Drop the table only if it exists. Schema::dropIfExists('users'); }