با سلام خدمت اساتید محترم
من قصد دارم برای آپدیت یک پروژه لاراولی، در جدول Users یک ستون از نوع Json با مقدار پیش فرض آرایه خالی به این شکل [ ]
یا DB::raw('(JSON_ARRAY())')
ایجاد کنم
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->json('roles')->default(DB::raw('(JSON_ARRAY())'));
}
}
اما
با خطا روبرو میشم. #1101 - BLOB, TEXT, GEOMETRY or JSON column 'media' can't have a default value
خودم فکر میکنم نوع داده ای (()JSON_ARRAY)
رو این ورژن mysql 5.7 شناسایی نمیکنه اما من باید این کارو انجام بدم.
دوستان اگه امکانش هست راه حلی بهم بدیم که مقدار پیش فرض تعیین نکنم اما مثلا از طریق seeder یا با هر شکل دیگه ای این ستون جدید رو مقدار دهی اولیه کنم البته با اجرای همان مایگریشن . یعنی با اجرای migration آن seeder مربوطه هم اجرا بشه
لطفا اگه راه حل دیگه ای هم مد نظر دارید خوش حال میشم بهم راهنمایی کنید
با تشکر
@hesammousavi
@abbas.ameriyan
@websaz
@mohaligateway
@ali.bayat
@abdolrahman
@juza66
فیلد های json از نسخه 5.7.22 به بعد MySQL موجود هستند.. اما پیشنها من ارتقا به نسخه ۸ MySQL هست..
هر چند این خطا که داری به خاطر مقدار پیش فرض هستو میگه نمیتونی به این فیلد مقدار پیش فرض بدی
میتونی فیلد رو nullable کنی
بعد با استفاده از یه کلاس seeder بهش مقدار بدی
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟