SQLSTATE [42804]: Несоответствие типов данных: 7 ОШИБКА: ограничение внешнего ключа "clients_record_id_foreign" не может быть реализовано - PullRequest
0 голосов
/ 15 апреля 2020

Я работаю с Laravel, и когда я запускаю php artisan migrare, я получаю эту ошибку:

Освещение \ Database \ QueryException: SQLSTATE [42804]: Несоответствие типа данных: 7 ОШИБКА: внешний ключ ограничение "clients_record_id_foreign" не может быть реализовано. ДЕТАЛИ: ключевые столбцы "record_id" и "id" имеют несовместимые типы: uuid и bigint. (SQL: изменить таблицу "клиенты", добавить ограничение "clients_record_id_foreign", внешний ключ ("record_id") ссылается на "записи" ("id") в каскаде удаления)}

Я не уверен, как решить это. Кто-нибудь может мне помочь?

Это мои файлы миграции.

create_records_table. php

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateRecordsTable extends Migration
{
/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('records', function (Blueprint $table) {
        //$table->bigIncrements('id');

        $table->uuid('id')->primary();

        $table->uuid('device_site_id');
        $table->foreign('device_site_id')->references('id')->on('device_site')->onDelete('cascade');

        $table->string('gw_address',16);
        $table->string('gw_port',6);
        $table->string('gw_id');
        $table->string('ip',16);
        $table->string('mac',18);
        $table->string('url');
        $table->string('user_agent');

        $table->timestamps();
    });
    DB::statement('ALTER TABLE records ALTER COLUMN id SET DEFAULT uuid_generate_v4();');
}

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

create_clients_table. php

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateClientsTable extends Migration
{
/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('clients', function (Blueprint $table) {
        $table->uuid('id')->primary();

        $table->uuid('record_id');
        $table->foreign('record_id')->references('id')->on('records')->onDelete('cascade');

        $table->string('name');
        $table->string('telephone');
        $table->string('email');
        $table->string('gender');

        $table->timestamps();
    });
    DB::statement('ALTER TABLE clients ALTER COLUMN id SET DEFAULT uuid_generate_v4();');
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('clients');
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...