2016-11-29 4 views
0

私は2つのテーブルbadgescounselorsを持っています。私のテストはすべて緑色でした。私はbadge_counselorという3番目のテーブル、ピボットテーブルを追加しました。ここでは、移行は次のとおりです。ラーバルのphpunitテストは正しく移行されません

use Illuminate\Support\Facades\Schema; 
use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateBadgeCounselorTable extends Migration { 

    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 

    public function up() 
    { 
    Schema::create('badge_counselor', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('badge_id')->unsigned(); 
     $table->integer('counselor_id')->unsigned(); 
     $table->foreign('badge_id')->references('id')->on('badges')->onDelete('cascade'); 
     $table->foreign('counselor_id')->references('id')->on('counselors')->onDelete('cascade'); 
    }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::dropIfExists('badge_counselor'); 
    } 
} 

私はphp artisan migrate/php artisan migrate:refresh/php artisan migrate:rollbackを実行すると、すべてが正常に動作します。しかし、私が単体テストを実行すると、それらのすべてが失敗します。私はからmigrateコマンドを実行すると、テーブルが正しくドロップされていないことを前提としていますが、

PDOException: SQLSTATE[HY000]: General error: 1 table "badge_counselor" already exists 

エラーメッセージから判断する:

Illuminate\Database\QueryException: SQLSTATE[HY000]: General error: 1 table "badge_counselor" already exists (SQL: create table "badge_counselor" ("id" integer not null primary key autoincrement, "badge_id" integer not null, "counselor_id" integer not null, foreign key("badge_id") references "badges"("id") on delete cascade, foreign key("counselor_id") references "counselors"("id") on delete cascade)) 

または単に:そして、それぞれがエラーメッセージを返します彼らは完璧です。私はmigrationsテーブル、すべてのテーブル、さらにはデータベース全体を削除しようとしましたが、再度作成しても何も動作していないようです。

ありがとうございました。

答えて

0

MySQLを使用していますか?もしそうなら、おそらくデータベース全体を削除してもう一度作成してください。ただし、データベースがMyISAMではなくInnoDBにあることを確認してください。このため、phpMyAdminの変数セクションのdefault_storage_engineInnoDBに変更してください。

+0

ちょうど私がMySQLではなくsqliteを使用していることを思い出しました。 –

0

[解決策]私はphpunitに使用していたsqliteファイルを削除し、再度実行しました。

関連する問題