I installed migrations with php artisan migrate:install
then created a migration with the php artisan migrate:make create_teams_table
command. Now I try to run them with the following command that I made according to the official documentation:
php artisan migrate --path=app/foo/migrations/2014_01_21_143531_create_teams_table.php
This gives me the following on the console:
Nothing to migrate.
The migrations
table in the database is empty and the new table isn't created neither. I don't understand why the documentation says foo
in the path. What does foo
mean and where does it comes from? First I tought that the path is wrong because of the foo
thing and as I know the path is relative to the app
folder so I changed it to app/database/migrations
but it doesn't work. I also tried a lot of other path combination but none of them worked.
Did I entered the wrong path? In this case shouldn't the console show some other kind of helpfull message? What does foo
mean? How can I run my migration?
That foo
thing is just an example. Laravel will look for migrations to run in app/database/migrations
on default. Try removing that --path
parameter and see if it works.
Try this:
First:
php artisan migrate:reset
Rolled back: 2014_03_28_142140_user_table
Nothing to rollback.
second:
php artisan migrate
Migrated: 2014_03_28_142140_user_table
check the database.
The path argument is for creating a migration for example:
php artisan migrate:make create_user_table --path=app/database/migrations/user_migrations/
But it is not documented to use while running the migrations, as it was in prior versions of laravel.
Dropping the --path argument should work in your case
What helped me:
php artisan config:cache
php artisan migrate
You don't need to move the migration file anywhere, just change its filename; for example, increase time integer and then run the migrate
command with path pointing the migration. e.g: php artisan migrate --path="database/migrations/2019_07_06_145857_create_products_table.php"
For anyone who still cannot migrate their database:
Assume you have a file to migrate abc_migrate.php
.
Firstly put your file inside the new folder named abc_folder
.
Then, enter this command
php artisan migrate --path=database/migrations/abc_folder/
.
You don't have to add file name at last of the directory path.
Done. Hope it helps.
The problem arises if the migrations
table in the database is empty.
So the solution is open up the tinker from the composer
$ php artisan tinker
>>> Schema::drop('users')
>>> Schema::drop('password_resets')
>>> Schema::drop('orders')
>>> exit
php artisan migrate
Here is the result of the above commands executed
nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate
In Connection.php line 647:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users'
alre ady exists (SQL: create table users
(id
int unsigned not
null auto_incr ement primary key, name
varchar(255) not null,
email
varchar(255) not n ull, password
varchar(255) not null,
remember_token
varchar(100) null, created_at
timestamp null,
updated_at
timestamp null) default character set utf8mb4
collate utf8mb4_unicode_ci)
In Connection.php line 449:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users'
alre ady exists
nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate:rollback
Nothing to rollback.
nishanth@localhost:~/Desktop/html/hutch$ php artisan tinker
Psy Shell v0.8.17 (PHP 7.1.20-1+ubuntu16.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> Schema::drop('users')
=> null
>>> Schema::drop('password_resets')
=> null
>>> Schema::drop('orders')
=> null
>>> exit
Exit: Goodbye.
nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrating: 2018_08_18_071213_create_orders_table
Migrated: 2018_08_18_071213_create_orders_table
nishanth@localhost:~/Desktop/html/hutch$
Also define the method down()
, if it doesn't exist.
Otherwise, it'll show
SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'XYZ.ABC' (SQL: drop table ABC
)
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('ABC');
}