2016-04-05 4 views
0

Когда я запускаю PHP мастеровые Перенести я постоянно получаю эту ошибку:Общая ошибка: 1005 не удается создать таблицу

[Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1005 Can't create table binomi . #sql-3910_c0b (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table users add constraint users_activity_foreign foreign key (activity) references activity (id) on delete cascade) [PDOException] SQLSTATE[HY000]: General error: 1005 Can't create table binomi . #sql-3910_c0b (errno: 150 "Foreign key constraint is incorrectly formed")

Вот является схемой для моего пользователя и деятельности модели и только эти модели приложение.

миграция Пользователь:

Schema::create('users', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('name'); 
     $table->string('email')->unique(); 
     $table->string('password'); 
     $table->integer('activity'); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 

    Schema::table('users', function($table){ 
     $table->foreign('activity')->references('id')->on('activity')->onDelete('cascade'); 
    } 

активность миграции:

Schema::create('activty', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('label'); 
    }); 
+0

обратили внимание на «;;» в конце вашей внешней линии? – Duikboot

+0

это всего лишь ошибка ввода @Duikboot –

ответ

2

Добавьте модификатор unsigned() к вашему столбца внешнего ключа:

Schema::create('users', function (Blueprint $table) { 
     ... 
     $table->integer('activity')->unsigned(); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 
+0

да это сработало, спасибо :) –

1

Ваша таблица деятельности имеет орфографическую ошибку, он говорит в своем создании схемы activty. Кроме того, я бы предложил переименовать его activities, если у вас его нет.

+0

i переименовать его, ничего не произошло –

+0

Вы тоже катили вещи назад? –

0

increments() автоматически назначается в качестве знака.

Итак, убедитесь, что вы добавляете без знака, как в коде ниже:

$table->integer('activity')->unsigned(); 

, а также проверить сделать ли вы опечатку или не

Смежные вопросы