دوره مجازی Laravel - جلسه 5 - بررسی ساختار laravel و migration ها



visibility  
mode_comment   ۲۲

به نام خدا و سلام. در خدمت شما هستیم با جلسه پنجم از دوره مجازی فریمورک laravel . در این جلسه قصد داریم ساختار دایرکتوری های پروژه ای که با laravel ایجاد شده رو بررسی کنیم . در ادامه هم می پردازیم به بحث migration ها و کاربرد آنها در مدیریت جدول های دیتابیس .

info توجه

این مطلب یک جلسه از آموزش حرفه ای لاراول می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش حرفه ای لاراول

comment دیدگاه کاربران
مجید replyپاسخ

استاد نام فایل ویدئو رو ویرایش کنید چون جلسه 4 خورده است

Kasra Toofani replyپاسخ

سلام استاد وقت بخیر
بعد از اجرای دستور php artisan migrate با ارور زیر در cmd مواجه میشم.مشکل از کجاست؟

SQLSTATE[42000]: syntax error or access violation: 1071,specified key was too long;max key length is 767 bytes <SQL: alter table ‘users’ add unique users_email_unique ‘<’email’>>
کیوان علی محمدی

سلام. در فایل AppServiceProvider.php این کد رو وارد کنید.

use Illuminate\Support\Facades\Schema;

public function boot()
{
Schema::defaultStringLength(191);
}

داود جعفری replyپاسخ

سلام آقای علی محمدی
وقت بخیر
امکانش هست کار با rest رو در لاراول هم آموزش بدید

کیوان علی محمدی

سلام در این دوره آموزش داده شده.

mahdi98 replyپاسخ

با سلام . استاد علی محمدی به نظرم شما دارید بدون برنامه پیش میرید ای کاش از قبل قشنگ می دونستید باید چه جدول هایی رو ایجاد کنید و همچنین خیلی موارد دیگه هم در بخش میگریشن ها میشد گفت که در داکیمنت لاراول اومده ولی شما ازش صرف نظر کردید ای کاش کیفیت دوره بالاتر بود…

کیوان علی محمدی

سلام. من عرض کردم در مورد مایگریشن ها به صورت کلی صحبت می کنم و خود دوستان می تونن از بخش مستندات بقیه موارد رو بخونن. سطح دوره مقدماتی تا متوسط بوده. تغییرات جدول ها در دوره های آموزشی چیز عجیبی نیست چون بعضا تغییرات بنا به درخواست دانشجویان اعمال میشه و قطعا اعمال همه مایگریشن ها در این سطح کارو سخت میکرد.

mahdi98

شما در کجا ذکر کردید که سطح دوره مقدماتی تا متوسط هست؟ من با این فرض که دوره کامل هست دوره رو خریداری کردم.

کیوان علی محمدی

اگر قرار باشه دوره 0 تا 100 باشه حتما اعلام می کنیم. سرفصل های دوره هم مشخص بوده

مهدی محمدی replyپاسخ

سلام.
من با mingw میتونم migration ایجاد کنم و توی phpstorm بهم نشون میده که پایین بقیه migration ها ایجاد شده ولی وقتی <> رو میزنم فقط همون دو
migration که خودش ایجاد کرده بود را نشان میدهد…و جدول جدید که من میخوام رو ایجاد نمیکنه…چرا؟الان چیکار کنم؟

کیوان علی محمدی

سلام. بهترین روش اینه که حتما gitbash رو نصب کنید و فقط از همون استفاده کنید.

یلدا شرفی replyپاسخ

سلام من موقع migrate با این خطا مواجه میشم

 Cannot add a required argument after an optional one.
کیوان علی محمدی

سلام دستور رو چطوری می نویسید؟

یلدا شرفی replyپاسخ

مورد دوم اینه که من یکبار عملیات migrate رو با موفقیت انجام دادم ولی به دلایلی مجبور شدم database و لاراول رو پاک کنم و مجددا نصب کنم ولی پوشه migration رو نگه داشتم و الان وقتی میخوام migrate کنمشون میگه :Nothing to migrate.

کیوان علی محمدی

فایل های migration رو باید دوباره بسازید.

یلدا شرفی

من پوشه migrations رو تغییر نام دادم مثلا اسمشو گذاشتم 2!
الان میگه بجای اینکه بزنی php artisan make:migration باید بزنی php artisan make:2

من مجددا هم اسم فولدر رو به migrations تغییر دادم ولی بازم با اجرای دستو php artisan migrate و هر دستور مرتبط با migration به خطای زیر میخورم
Cannot add a required argument after an optional one.

و با اجرای دستور
composer dump-autoload

خطای زیر داده میشه:
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1

کیوان علی محمدی

کلا فکر میکنم ساحتار لاراول رو خراب کردین. بهتره یکبار دیگه از اول نصبش کنید.

یلدا شرفی replyپاسخ

? ممنون

امین replyپاسخ

سلام
وقت بخیر
ببخشید دو تا سوال داشتم :
1- برای تغییر دادن اسم ستون های دیتابیسمون و همینطور نوع دادشون (هنگامی که دیتا داریم درون دیتابیسمون و نمیخوایم دیتامون حذف شن) تو ویدئو اشاره کردین ولی نگفتین چطوری میشه اینکارو کرد@ طبق مستندات لاراول گفته که برای تغییر نام ستون ها و نوع دادشون باید از کد به شکل زیر در migration مون استفاده کنیم
1.1-آیا درسته این راه؟
1.2-در زمانی که سایت روی هاست هستش و دسترسی نداریم و بخوایم این تغییرات رو بدیم باید تو لوکال انجام بدیم و بعد رو هاست سینک sync کنیم؟
1.3-بعد از تغییر این دو خط کدو باید حذف کنیم از فایل migration مون یا کامنتشون کنیم درسته؟

2- چند تا دیتابیس سایت لاراولی که دیدم ، همه این دیتابیس ها کلید خارجی رو در همون migration تعریف کرده بودن و مشکلی نبود فقط سوالم اینجاست که توی آموزش php استاد آوند میگفتن که در phpmyadmin بیایم و Relation view کلید خارجی رو اونجا تعریف کنیم و بعد در قسمت Designer >> PHP my admin نشون میداد که ستون مثلا یوزر آیدی در جدول سفارشات وصله به جدوله یوزر بعنوان کلید خارجی ، ولی در این دیتابیس های لاراولی که دیدم در این قسمت دیزاین یا همون قسمت Relation view هیچ چیزی تعریف نکرده بودن ولی سایت بدون مشکل کار میکرد ، باید آیا Relation view رو در دیتابیس های لاراولی تعریف کنیم یا با همون کد کافیه و کارشو میکنه و مشکلی بوجود نمیاد؟

//First Install doctrine/dbal
composer require doctrine/dbal
//Then
//For Change Column Data Type From Char To String
$table->string(‘name’)->change();
//For Change Column Name
$table->renameColumn(‘from’, ‘to’);
کیوان علی محمدی

1 – حتما باید از migration استفاده بشه و این روش مشکلی نداره.
1-2 پیشنهاد میشه تا حد امکان از هاست عادی استفاده نکنید و سرور اختصاصی داشته باشید
1-3 فایل های migration بعد از ایجاد و کدنویسی و اجرا اصلا نباید تغییر کنن تا روند تغییرات همیشه حفظ بشه.
2 – شما با هر کدوم که ایجاد کنید هیچ مشکلی نداره

خدابنده replyپاسخ

سلام و تشکر
استاد اگر دیتابیس اولیه پروژه رو در phpmyadmin داشته باشیم چطور میشه از روی اون معادل migration رو تولید کرد (عکس اونچه آموزش دادید) cli کامندی در این باره داره یا راه حل دیگه ای که نخوایم مایگرشن ها بدون کد نویسی به سرعت ایجاد کنیم؟
مممنون

کیوان علی محمدی

سلام دستور خاصی توی خود لاراول بنده ندیدم. اما می تونی از این پکیج استفاده کنی.
https://packagist.org/packages/xethron/migrations-generator

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.