تعذر تشغيل الترحيل البسيط: كان المفتاح المحدد خطأ طويل جدًا

0

قمت بإعداد مشروع جديد مع symfony والعقيدة. قمت بإنشاء قاعدة بيانات باستخدام الأمر التالي:

php bin/console doctrine:database:create

ثم قمت بإنشاء كيان باستخدام الأمر التالي:

php bin/console make:entity

كان هذا هو الرمز الذي تم إنشاؤه:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 */
class User
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $email;

    /**
     * @ORM\Column(type="string", length=24, nullable=true)
     */
    private $phone;

    /**
     * @ORM\Column(type="integer")
     */
    private $zip_code;

    public function getId()
    {
        return $this->id;
    }

    public function getName(): ?string
    {
        return $this->name;
    }

    public function setName(string $name): self
    {
        $this->name = $name;

        return $this;
    }

    public function getEmail(): ?string
    {
        return $this->email;
    }

    public function setEmail(string $email): self
    {
        $this->email = $email;

        return $this;
    }

    public function getPhone(): ?string
    {
        return $this->phone;
    }

    public function setPhone(?string $phone): self
    {
        $this->phone = $phone;

        return $this;
    }

    public function getZipCode(): ?int
    {
        return $this->zip_code;
    }

    public function setZipCode(int $zip_code): self
    {
        $this->zip_code = $zip_code;

        return $this;
    }
}

عندما أحاول تشغيل الترحيل ، أستمر في تلقي الخطأ التالي:

php bin/console make:migration

و

php bin/console doctrine:migrations:migrate

خطأ:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

هذا أمر محبط للغاية لأنني أستخدم سطر الأوامر لإنشاء رمز ومشروع جديد تمامًا وقد حاولت استكشاف هذا الأمر لبعض الوقت.

أنا أقدر أي اقتراحات حول كيفية حلها.

1 إجابة

0

حدث هذا لي لأنني كنت utf8mb4 كتجميع (بشكل أكثر تحديدًا utf8mb4_unicode_ci ) ، وهو الآن افتراضي للعقيدة.

https://github.com/symfony/recipes/blob/master/doctrine/doctrine-bundle/1.6/config/packages/doctrine.yaml#L13

الشيء الغريب هو أنني أواجه هذه المشكلة فقط unique مجالات. كان علي أن أقتصر على 191 حرفًا ، إجابة وجدتها هنا: https://laravel-news.com/laravel-5-4-key-too-long-error

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام