私は決して理由を知りませんでした!私のテーブルの1つ、Posts
は、phpMyAdminで自分のデータベースを見たときに削除されました!!!私はphp artisan migrate
であることを再生しようとしたが、私はこのエラーを持っている:laravelの移行でデータを終了する方法
[PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists
マイusersテーブルは、テーブルが削除された投稿のみ存在しました! これは私のモデルである:
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で同じことをしていますか? Laravel 5.5で
を再構築する新しいコマンド
php artisan migrate:fresh
があるのは、はい、そのテーブル内のデータが失われますので、それを削除することを意味します。私はデータのダンプまたはあなたのデータのCSVを作成し、あなたが移行をリフレッシュした後にテーブルを再投入するために 'Seeder'を使うことを提案します。 –マイ・プロダクションでマイグレーションを実行する前にデータベースをバックアップしてください – bhill77
マイグレーション・テーブルの状態は?移行が実行されたら、再度実行しないでください。ユーザーテーブル作成コードを実行したくない場合は、マイグレーションテーブルに挿入してください。実行されません。 –