Таблица не найдена при посеве

Ниже приведены мои миграции

Миграции

Таблица users связана с таблицей customer

У пользователя:

$table->integer('customer_id')->unsigned();
$table->foreign('customer_id')->references('id')->on('customers');

Когда я звоню php artisan migrate:refresh --seed, ремесленник дал мне следующую ошибку:

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL
: alter table `users` add constraint `users_customer_id_foreign` foreign ke
y (`customer_id`) references `customers` (`id`))[PDOException]
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint

Потому что таблица клиентов не существует … (очевидно)

Есть ли способ решить эту проблему? Я знаю, что изменение даты файлов исправит это, но должен быть лучший подход

0

Решение

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

2

Другие решения

Попробуйте сделать это отдельно.

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

Schema::table('users', function($table) {
$table->foreign('costumer_id')->references('id')->on('costumers');
});
}

Еще одна вещь, которую вы можете попробовать (начиная с версии 5.3):

unsignedInteger('column_name') instead of ('column_name')-unsigned()
0

Если вы установили одно поле как «Без знака», а другое — нет. После того, как вы установите оба столбца в Unsigned, все заработает

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector