2017-08-06 10 views
1

私は決して理由を知りませんでした!私のテーブルの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で

+0

を再構築する新しいコマンドphp artisan migrate:freshがあるのは、はい、そのテーブル内のデータが失われますので、それを削除することを意味します。私はデータのダンプまたはあなたのデータのCSVを作成し、あなたが移行をリフレッシュした後にテーブルを再投入するために 'Seeder'を使うことを提案します。 –

+2

マイ・プロダクションでマイグレーションを実行する前にデータベースをバックアップしてください – bhill77

+1

マイグレーション・テーブルの状態は?移行が実行されたら、再度実行しないでください。ユーザーテーブル作成コードを実行したくない場合は、マイグレーションテーブルに挿入してください。実行されません。 –

答えて

0

すべてのテーブルをドロップan「は、テーブルの削除」それらすべて

関連する問題