Mr.H
4 سال پیش توسط Mr.H مطرح شد
6 پاسخ

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

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

$table->unsignedBigInteger('category_id')->nullable();
            $table->foreign('category_id')
                ->references('id')
                ->on('categories')
                ->onDelete('cascade')
                ->onUpdate('cascade');

ثبت پرسش جدید
بهزاد عزیزان
@behzad.azizan 4 سال پیش مطرح شد
0

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


saman
@saman1111 4 سال پیش مطرح شد
0

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

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

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


Mr.H
تخصص : Laravel
@Mr.H 4 سال پیش مطرح شد
0

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


Mr.H
تخصص : Laravel
@Mr.H 4 سال پیش مطرح شد
0

@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
تخصص : Back-End Developer
@muhammad 4 سال پیش مطرح شد
0
ALTER TABLE name_of_your_table ENGINE = InnoDB;

بهزاد عزیزان
@behzad.azizan 4 سال پیش مطرح شد
0

@Mr.H
سلام

ALTER TABLE TBL_NAME ENGINE = InnoDB;

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

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