'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 |