У меня есть проблема, которую я никак не могу решить с помощью миграций Laravel.
Это миграция моих пользователей, имя данных: 2014_12_10_000000_create_users_table.php
Schema::create('users', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->unsignedInteger('user_parent_id')->nullable();
$table->unsignedInteger('company_id')->nullable();
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
Это компаниямиграция таблицы, имя файла 2018_06_01_080858_create_company_table.php
Schema::create('company', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
....
$table->timestamps();
});
Это вместо миграции для установки внешних ключей, имя файла: 2018_11_13_111338_alter_foreign_keys.php
Schema::table('users', function($table) {
$table->foreign('user_parent_id')->references('id')->on('users');
$table->foreign('company_id')->references('id')->on('company');
});
Когда я пытаюсь запустить php artmigrate У меня всегда есть эта ошибка:
In Connection.php line 647:
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `users` add constraint `users_company_id_foreign` foreign key (`company_id`) references `company` (`id`))
In PDOStatement.php line 144:
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
In PDOStatement.php line 142:
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
В последнем, миграция с именем 2018_11_13_111338_alter_foreign_keys.php Я последовательно добавил все остальные внешние ключи для всех других таблиц в моей базе данных.
Любые предложения приветствуются, спасибо.
Это код класса alterForeignTable:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AlterForeignTable2 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function($table) {
$table->foreign('user_parent_id')->references('id')->on('users');
$table->foreign('company_id')->references('id')->on('company');
});
Schema::table('otherstable', function($table) {
$table->foreign('user_id')->references('id')->on('users');
});
}
}