Question: after I've manually deleted a table in mysql, I run the command:

```
php artisan migrate

```

and I get this:

```
Nothing to migrate.

```

it only works the first time, how to re-run the migration in laravel?

Answer: 
Laravel keeps a record of migrations that have been run. You need to go to the migrations table and delete the migration record. Laravel does this so that it knows which migrations have been run so that it doesn't run them again and so that in the case of a rollback, it knows the last batch of migrations which were done.

This may help <https://laravel.com/docs/5.6/migrations>
That is the expected behaviour if you manually delete a table, because the previous batch migration job has already been deployed (in **migrations** table).

* IF you want to re-migrate all the database, you can simply do: `php artisan migrate:refresh`.
* IF you want to make sure your database to be clean with your latest changes, you can drop your entire database tables and do `php artisan migrate` again. Also, you can try `php artisan migrate --seed` if you have any seeder.