0

When I'm trying to set a relation between two tables I receive the error:

D:\wamp\www>php artisan migrate Migration table created successfully.

[Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table rittenregistratie add co nstraint rittenregistratie_karakterritid_foreign foreign key (karakterritid) references karakterrit (id) on d elete cascade)

[PDOException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint

D:\wamp\www>

This is my migration rittenregistratie (it's dutch) :

    <?php

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

class CreateRittenregistratieTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('rittenregistratie', function (Blueprint $table) 
        {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->timestamps('datum');
            $table->integer('beginstand');
            $table->integer('eindstand');
            $table->text('van');
            $table->text('naar');
            $table->text('bezoekadres');
            $table->text('geredenroute');
            $table->integer('karakterritid')->default(1);
            $table->text('toelichting');
            $table->integer('kilometerszakelijk');
            $table->integer('kilomteresprive');

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

            $table->foreign('karakterritid')
                        ->references('id')
                        ->on('karakterrit')
                        ->onDelete('cascade');
        });
    }

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

This is where I want to relate to:

<?php

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

class CreateKarakterritTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('karakterrit',function(Blueprint $table)
        {
            $table->increments('id');
            $table->text('rit');          
        });
    }

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

What is am I doing wrong?

Jamie
  • 10,302
  • 32
  • 103
  • 186
  • Can you confirm the position of "CreateKarakterritTable" migration? I mean it is migrating before "CreateRittenregistratieTable" migration? – Swapnil Bhavsar Aug 31 '15 at 14:31
  • How can you change the order of migrating? – Jamie Aug 31 '15 at 14:35
  • recreate migrations! But this time "CreateKarakterritTable" first. – Swapnil Bhavsar Aug 31 '15 at 14:37
  • I've made them again but still receive the error: [Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `rittenregistratie` add constraint rittenregistratie_karakterri tid_foreign foreign key (`karakterritid`) references `karakterrit` (`id`) on delete cascade) – Jamie Aug 31 '15 at 14:52
  • And I've karakterrit created first? – Jamie Aug 31 '15 at 14:53
  • Maybe I must have my relations set in my models? – Jamie Aug 31 '15 at 17:21
  • possible duplicate of [Laravel cannot add foreign key constraint](http://stackoverflow.com/questions/32319400/laravel-cannot-add-foreign-key-constraint) – Jeff Lambert Sep 01 '15 at 20:32

0 Answers0