Laravel 5.1 Migration und Seeding Eine Tabelle, auf die in einer Fremdschlüsseleinschränkung verwiesen wird, kann nicht abgeschnitten werden.

Ich versuche, die Migration auszuführen (siehe unten) und die Datenbank zu sortieren, aber wenn ich @ ausfüh

php artisan migrate --seed

Ich erhalte diesen Fehler:

Migration table created successfully.
Migrated: 2015_06_17_100000_create_users_table
Migrated: 2015_06_17_200000_create_password_resets_table
Migrated: 2015_06_17_300000_create_vehicles_table

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1701 Cannot truncate a table
referenced in a foreign key constraint (`app`.`vehicles`, CONSTRAINT `vehic
les_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `app`.`users` (`id`
)) (SQL: truncate `users`)

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1701 Cannot truncate a table
referenced in a foreign key constraint (`app`.`vehicles`, CONSTRAINT `vehic
les_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `app`.`users` (`id`
))

Ich habe nachgeschlagen, was dieser Fehler bedeuten soll, und habe auch gefunden Beispiele von anderen Leuten, die auf dasselbe Problem stoßen, auch wenn es nur um die Verwendung von @ ge MySQL und ihre Lösungen, aber zutreffend:

DB::statement('SET FOREIGN_KEY_CHECKS=0;'); and 
DB::statement('SET FOREIGN_KEY_CHECKS=1;'); 

Within down () scheint nicht zu funktionieren und wenn ich "describe" in MySQL ausführe, sehen die Tabellen richtig aus.

Die Migrationen werden ordnungsgemäß benannt, um sicherzustellen, dass zuerst die Benutzertabelle und dann die Fahrzeuge migriert werden, damit der Fremdschlüssel angewendet werden kann. Die Tabellen, die ordnungsgemäß eingerichtet werden, weisen darauf hin, dass die Migrationen ausgeführt wurden. In diesem Fall tritt jedoch der Fehler auf. Ich habe die Datenbank gelöscht und neu erstellt und es erneut versucht, und es ist das gleiche Ergebnis. Ich verstehe auch nicht, warum versucht wird, bei der ersten Migration und dem ersten Start der Datenbank abzuschneiden. Ich hätte nicht gedacht, dass dies passieren würde, wenn Sie versucht hätten, PHP Artisan Migrate auszuführen: refresh --seed.

// 2015_06_17_100000_create_users_table.php

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('username', 60)->unique();
            $table->string('email', 200)->unique();
            $table->string('password', 255);
            $table->string('role')->default('user');
            $table->rememberToken();
            $table->timestamps();
        });
    }
}

public function down()
{
    Schema::drop('users');
}

// 2015_06_17_300000_create_vehicles_table.php

class CreateVehiclesTable extends Migration
{
    public function up()
    {
        Schema::create('vehicles', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->string('make');
            $table->string('model');
            $table->string('year');
            $table->string('color');
            $table->string('plate');
            $table->timestamps();

            $table->foreign('user_id')->references('id')->on('users');
        });
    }
}

public function down()
{
    Schema::drop('vehicles');
}