C:\Users\M\Desktop\blog>php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Illuminate\Database\QueryException
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists (SQL: create table `users` (`id` bigint unsigned not null auto_increment pr
imary key, `name` varchar(255) not null, `email` varchar(255) not null, `email_verified_at` timestamp null, `password` varchar(255) not null, `remember_token` varc
har(100) null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
at C:\Users\M\Desktop\blog\vendor\laravel\framework\src\Illuminate\Database\Connection.php:678
674▕ // If an exception occurs when attempting to run a query, we'll format the error
675▕ // message to include the bindings with SQL, which will make this exception a
676▕ // lot more helpful to the developer instead of just the database's errors.
677▕ catch (Exception $e) {
➜ 678▕ throw new QueryException(
679▕ $query, $this->prepareBindings($bindings), $e
680▕ );
681▕ }
682▕
}
682▕
1 C:\Users\M\Desktop\blog\vendor\laravel\framework\src\Illuminate\Database\Connection.php:471
PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists")
2 C:\Users\M\Desktop\blog\vendor\laravel\framework\src\Illuminate\Database\Connection.php:471
PDOStatement::execute()
C:\Users\M\Desktop\blog>
دوست عزیز شما یکبار مایگریشن رو اجرا کردین و صفحه خطا داره به شما میگه که جدول کاربران قبلا ساخته شده ولی شما میخواین دوباره اینکار رو انجام بدین ,‘,,
اول از دستور php artisan migrate:rollback
مایگریشن ایجاد شده رو برگردونید
دوم تغییرات مد نظرتون رو در کلاس مایگریشن تایپ کنید
سوم دوباره دستور php artisan migrate رو اجرا نمایید
سلام ,
به نظر میرسه که شما مایگرشن خودتون رو اجرا کردید , اگر قصد دارید ساختار جداولتون رو تغییر بدید بهتره که یک مایگریشن جدید مثل
php artisan make:migration add_x_cloumn_to_users_table --table=users
.بسازید
اینطوری شما مستندات تغییرات جداول دیتابیس رو در اختیار خواهید داشت.
لاراول این امکان رو به شما می ده که مایگرشن های اجرا شده رو تغییر بدید و دوباره اجرا کنید اما اینکار باعث می شه که در آینده مستندات خوبی از تغییرات جداولتون نداشته باشید.
(هدف از ساخت مایگرشن ها همین مستندات هست تا این که بدونیم توی یک تیم , چه کسی در ساختار جداول تغییر ایجاد کرده )
برای اجرای دوباره تمامی مایگریشن ها از دستور استفاده کنید.
php artisan migrate:fresh
.برای اطلاعات بیشتر این لینک مطالعه کنید