راکت

کار نکردن cascade در هاست

6 پاسخ

با عرض سلام و خسته نباشید
در لوکال وقتی دسته بندی که محصولات داره رو حذف میکنم به درستی کار میکنه اما وقتی پروژه رو در هاست تست میکنم وقتی دسته بندی حذف میکنم محصولات حذف نمیشن و حتی ارور هم برنمیگرونه که دسته بندی این محصول وجود نداره عملا cascade کار نمیکنه
به نظر شما مشکل از چی هست؟
نمونه کد relation

$table->unsignedBigInteger('category_id')->nullable();
            $table->foreign('category_id')
                ->references('id')
                ->on('categories')
                ->onDelete('cascade')
                ->onUpdate('cascade');
Mr.H
Mr.H
@Mr.H
ثبت پرسش جدید

پاسخ‌ها

6
بهزاد عزیزان
بهزاد عزیزان
@behzad.azizan

سلام
انجین جداولتون رو روی سرور چک کنید ببینید innoDB هستن یا نه به نظر میاد انجین جداولتون روی سرور myISAM هست و به همین خاطر چنین مشکلی وجود داره

saman
saman
@saman1111

سلام
اگه ارور نمیده حتما اصلا relation وجود نداره، در این صورت ارتباط کار میکنه ولی constraint نداره که جلوگیری کنه از حذف شدن دسته بندی
یا این که از soft delete استفاده کردید.

شما چجوری دیتابیس رو بردید روی هاست ؟ با SSH ؟ یا از روی لوکال اکسپورت گرفتید و روی mysql هاست ایمپورت کردید ؟

درستش اینه که شما دنبال مشکل در دیتابیستون در mysql هاست باشید، نه مایگریشنش.
ببینید اونجا مشکلی نداره ؟

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

Mr.H
Mr.H
@Mr.H

تخصص: Laravel

@saman
سلام مهندس نه دیگه خدمتتون عرض کردم در لوکال داره درست کارمیکنه اساسا همیشه درست کار میکرده حتی در پروژه های دیگه ای هم آپلود کردم درست بوده و بنده اکسپورت گرفته بودم و روی mysql هاست ایمپورت کرده بودم

Mr.H
Mr.H
@Mr.H

تخصص: Laravel

@behzad.azizan سلام مهندس بله منم همین فکر میکنم منتهی نمیدونم چجوری این کار انجام بدم یعنی چجوری engine mysql هاست innoDB کنم

SET @DATABASE_NAME = 'name_of_your_db';

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM    information_schema.tables AS tb
WHERE   table_schema = @DATABASE_NAME
AND     `ENGINE` = 'MyISAM'
AND     `TABLE_TYPE` = 'BASE TABLE'
ORDER BY table_name DESC;

درنظر دارم که از این دستور استفاده کنم

Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

ALTER TABLE name_of_your_table ENGINE = InnoDB;
بهزاد عزیزان
بهزاد عزیزان
@behzad.azizan

@Mr.H
سلام

ALTER TABLE TBL_NAME ENGINE = InnoDB;

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

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