راکت

مشکل در وارد کردن مایگریشن ها

8 پاسخ

میخوام مایگریشن هایی که دارم رو اجرا کنم اما خطا میده و دلیلش هم نمیدونم چیه اگه کمک کنید به حلش ممنون میشم :

  Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `shoppingcart` add primary key `shoppingcart_identifier_instance_primary`(`identifier`, `instance`))

  at F:\laravel-project\digikala2\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

  Exception trace:

  1   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes")
      F:\laravel-project\digikala2\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

  2   PDOStatement::execute()
      F:\laravel-project\digikala2\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458

  Please use the argument -v to see more details.

و مایگریشنی هم که مشکل داره به شکل زیر است :

    public function up()
    {
        Schema::create(config('cart.database.table'), function (Blueprint $table) {
            $table->string('identifier');
            $table->string('instance');
            $table->longText('content');
            $table->nullableTimestamps();

            $table->primary(['identifier', 'instance']);
        });
    }
ثبت پرسش جدید

پاسخ‌ها

8
mkt
mkt
@mkt

سلام
برو
ProjectName>>app>>providers>>AppServiceProvider.php
کدهای زیر را اظافه کن :

‍‍‍‍‍‍‍‍‍‍‍‍‍‍```php

1-
use Illuminate\Support\Facades\Schema;
2-
public function boot()
{
Schema::defaultStringLength(191);
}

محمدرضا قمی اویلی
محمدرضا قمی اویلی
@ghomi

تخصص: لاراول

این خط بر میدارم درست میشه :

 $table->primary(['identifier', 'instance']);

شاید پاسخ شما همین‌جا باشد

محمدرضا قمی اویلی
محمدرضا قمی اویلی
@ghomi

تخصص: لاراول

@kazemimorteza68
قرار دادم اما مشکل حل نشد

mkt
mkt
@mkt

الان هر مایگریشنی اجرا میکنی ارور میده؟

mkt
mkt
@mkt

کدهای این صفحه را قرار میدی؟
AppServiceProvider.php

محمدرضا قمی اویلی
محمدرضا قمی اویلی
@ghomi

تخصص: لاراول

کد 191 که قرار نمیدادم مایگریشن های دیگه ام اجرا نمیشدن

mkt
mkt
@mkt

اوکی شد ؟؟

محمدرضا قمی اویلی
محمدرضا قمی اویلی
@ghomi

تخصص: لاراول

مشکل از جای دیگه هستش از این کد نیست من همش موقعی که پروژه ای رو ایجاد میکنم این که قرار میدم این بار مشکل از جای دیگه هستش

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام