我从来不知道为什么!但当我在phpMyAdmin中查看我的数据库时,我的一个名为Posts
的表被删除了!所以我试图通过php artisan migrate
重新生成它,但我有这个错误:
[PDOException]
SQLSTATE [42S01]:基表或视图已存在:1050表'用户' 已存在
我的用户表只存在帖子表被删除了! 这是我的模特:
class Post extends Model
{
protected $table = 'posts';
public $primaryKey = 'id';
public $timestamps = true;
public function user()
{
return $this->belongsTo('App\User');
}
}
和
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function posts()
{
return $this->hasMany('App\Post');
}
}
我必须在用户迁移中使用此命令:Schema::dropIfExists('users');
并再次运行php artisan migrate
。除了用户表中的所有数据之外,所有事情都被解决了!
如何在laravel中终止同样的问题?如何在laravel迁移中disable data losing
,如果某些更改导致丢失数据,请提醒我。
在微软EF中我们有EnableDataLoosing=false
; Eloquent在laravel中有同样的事吗?
答案 0 :(得分:0)
在Laravel 5.5中有一个新命令php artisan migrate:fresh
,它将删除所有表格并重建所有表格