Search code examples
phplaravellaravel-5laravel-5.5

Migration laravel 5.5 : cannot create table except users table and password_reset table


i have 9 tables, when i run command :

php artisan migrate

only users table, migration table and password_reset table are created in my database. this is my sample code

use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateAlatsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('alats', function (Blueprint $table) { $table->increments('id'); $table->integer('merk_id')->unsigned(); $table->integer('kategori_id')->unsigned(); $table->integer('operator_id')->unsigned(); $table->string('nama'); $table->string('no_plat',15); $table->date('tahun'); $table->string('volume',20); $table->text('keterangan'); $table->enum('status',['ada','disewa','servis']); // $table->timestamp('created_at'); // $table->timestamp('updated_at'); $table->timestamps(); $table->foreign('merk_id')->references('id')->on('merks')->onDelete('CASCADE'); $table->foreign('kategori_id')->references('id')->on('kategoris')->onDelete('CASCADE'); $table->foreign('operator_id')->references('id')->on('operators')->onDelete('CASCADE'); }); } public function down() { Schema::dropIfExists('alats'); } }

please help me..?


Solution

  • The migration files need to be migrated in right order. You can't migrate a table with a non existing foreign key.

    You probably have a foreign key in some migration and the id key for that will come to existence later in the next migration file. That is why you get this error.

    Check your migration files and watch out on order they get created.

    For example if you have a foreign key alats_merk_id_foreign then the migration file with alats_merk_id must be migrated before.