چند بار خواستم روی سیستم من و همکارانم به مای اسکیوال روی زمپ وصل بشیم و مجبور شدیم کد خط زیر رو اضافه کنیم
providers > AppServiceProvider.php
در پوشه ی provider در فایل بالا
Schema::defaultStringLength(191);
الان دقیقا یادم نیست که چرا مجبور شدیم این خط کد رو اضافه کنیم شاید روی لاراول 5.6 وقتی وصل میشدیم به دیتابیس mysql نسخه ی 5 و خورده ای یک مشکلی برای بعضی انواع فیلد و ساختن اونها موقع php artisan migrate بود
اما وقتی اومدیم روی سرور داکر اون رو پابلیش کنیم مجبور شدیم
if (!app()->runningInConsole()) {
// Your code...
Schema::defaultStringLength(191);
}
این رو اضافه کنیم.
مشکل بعدی مشکل وویجر بود که وقتی ادمین وویجر نصب میشد اون هم در زمان شروع به کار و دیپلوی روی ماشین لیارا اصرار داشت به دیتابیس وصل بشه و خب میدونید بار اول که پابلیش میکنیم روی داکر اگر بخواد به دیتابیس وصل بشه و کانفیگوریشن اعمال کنه باید فایل env باشه و تنظیماتش برای اتصال به داکر صحیح باشه.
خب ما در سرویس های ابری مختلف بعد از اولین پابلیش میریم در ستینگ ماشین ابری و تنظیمات رو به وسیله ی آپلود env فایل اعمال میکنیم
میخوام بدون کسی تجربه داشته که کمی توضیح بده برای حل این مشکلات چیکار کرده و برای جلوگیری از این مشکلات چیکار هایی میشه انجام داد یا خیر
با تشکر
برای حل اروری که با کد زیر مشکلش حل میشه
Schema::defaultStringLength(191);
فقط کافیه که شما از نسخههای آخر mysql یا همون mariaDB استفاده کنید دیگه نیازی به وارد کردن کد بالا ندارید.
بعد از این مشکل آیا فقط مشکلتون آپلود فایل env هست ؟
توی همون فایل AppServiceProvider
if (env('APP_ENV') !== 'local') {
$this->app['request']->server->set('HTTPS', false);
}
یک همچین تنظیمی هم دارم که نمیدونم شش ماه پیش چرا اینو true کردم چرا false کردم.
فقط میدونم وویجر اذیت میکرد پاکش کردم laravel-admin.org برای پنل ادمین ریختم
شما چه ادمین پنل معرفی میکنید که از جداول ش تا ساختارش یا سفارشی سازیش مهندس و حساب و کتاب دارد و مستدسازی خوب داشته باشه.
استفاده از Schema::defaultStringLength(191)
دلیلش در زیر توضیح داده شده:
ماکزیمم حجم مجاز برای هر فیلد در دیتابیس، ۷۶۷ بایت داده هست که میتونه ذخیره بشه.
اگر از انکودینگ utf8_mb4 استفاده کنید.. این انکودینگ چون مواردی مثل ایموجی ها رو میتونه ذخیره کنه » برای هر کاراکتر نیاز به ۴ بایت جا داره...
و اگر قرار باشه از طول ۲۵۵ کاراکتر استفاده کنید.. میشه:
255 x 4 = 1020
که میبینید از حد مجاز 767 بایت رد میشه..
برای همین طول مجاز رو ۱۹۱ قرار میدند تا بشه 764 بایت و دیگه چنین مشکلی بوجود نیاد. از نسخه ۵.۷ MySQL این مشکل حل شده.
و حتی میتونید برای نسخه های قبل هم از انکودینگ utf8 معمولی استفاده کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟