我一直不知道为什么!但是当我在 phpMyAdmin 中查看我的数据库时,我的一个表,名为:Posts
被删除了!!!所以我尝试通过 php artisan migrate
重新生成它,但我遇到了这个错误:
[PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists
我的用户表只存在帖子表被删除了! 这是我的模型:
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 迁移中禁用数据丢失
,如果某些更改导致它丢失数据,请提醒我。
在 Microsoft EF 中,我们有 EnableDataLoosing=false
; Eloquent 在 laravel 中有同样的东西吗?
最佳答案
在 Laravel 5.5 中有一个新命令 php artisan migrate:fresh
它将删除你所有的表并重建它们
关于php - 如何终止 laravel 迁移中的数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530340/