'Php artisan migrate no such file or directory

I created a make:migration when I try to run the migration I get the following error

No such file or directory (SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations).

In my env file my db name is homestead and in my db I have a table named migrations. Not really sure why I am getting this error.



Solution 1:[1]

1) Run command:

composer dump-autoload

2) rollback command:

php artisan migrate:rollback

Then create your migration:

php artisan make:migration create_users_table

Solution 2:[2]

Here is what worked for me. I am using Homestead vagrant box, along with a bunch of other Vagrant boxes and Docker images for various projects, so the IP of my Homestead box was not 127.0.0.1, it was 192.168.10.10. I was getting variations of SQLSTATE[HY000] [2002] until I updated the IP address in int .env file to

DB_CONNECTION=mysql
DB_HOST=192.168.10.10
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

and my config/database.php with

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '192.168.10.10'),
        'port' => env('DB_PORT', '3306'),
...

I also ran php artisan cache:clear and php artisan config:clear after the changes. After that running

php artisan migrate

returned

Migration table created successfully.

Hope it helps someone. You can check the IP of your Homestead machine in Homestead/Homestead.yaml file.

Solution 3:[3]

In the documentation it says:

If you are using the Homestead virtual machine, you should run this [php artisan migrate] command from within your virtual machine.

Then,

You can SSH into your virtual machine by issuing the vagrant ssh terminal command from your Homestead directory.

So use vagrant ssh or if you set up the function in the documentation, use homestead ssh

Once you are logged into vagrant/homstead virtual machine, navigate to your code location. In my case, I have to do cd Code/my-project-name. This depends on how you have homestead setup in your Homestead.yaml file.

Now that you are in your project folder, run php artisan migrate

If that still doesn't work, make sure in your .env file the DB_PORT is 3306.

Solution 4:[4]

I had a similar problem using wsl, and solved it by making sure that DB_HOST=localhost and that the mysql service was running locally with sudo service mysql start

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Sunny Doshi
Solution 2 Maxim Safioulline
Solution 3 zechdc
Solution 4 Mk-XIII