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

دسته بندی: آموزش
زمان مطالعه: 1 دقیقه
۱۶ خرداد ۱۳۹۶

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

:: توجه

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

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

نویسنده
یادگیرنده ی همیشگی،برنامه نویس،نویسنده،عاشق خلق چیزهای عجیب،عاشق تحلیل داده ها، مسئول بخش فنی و هم بنیان گذار در سون لرن.

جلسات دوره

نظرات کاربران

سجاد نصیری

سلام.
در phpmyadmin با ارور زیر مواجه می شوم:
Table phpmyadmin.pma__table_uiprefs dosnt exist in engine
دلیلش چی هست؟

دانیال یوسفی فر

سلام استاد.
ببخشید استاد برای بنده یک مشکلی پیش آمده است. وقتی دستور php artisan migrate را در ترمینال میزنم ارور زیر نمایش داده میشه.
سیستم عامل من: گنو/لینوکس اوبونتو 19.04
وب سرور: LiteSpeed
دیتابیس: MariaDB

  [Illuminate\Database\QueryException]                                                    
  could not find driver (SQL: select * from information_schema.tables where table_schema  
   = larafiles and table_name = migrations)                                               
                                                                                          

                         
  [PDOException]         
  could not find driver  
                        
خدابنده

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

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

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

امین

سلام
وقت بخیر
ببخشید دو تا سوال داشتم :
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 – شما با هر کدوم که ایجاد کنید هیچ مشکلی نداره

یلدا شرفی

? ممنون

یلدا شرفی

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

یلدا شرفی

من پوشه 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

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

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

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

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

یلدا شرفی

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

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

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

مهدی محمدی

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

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

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

mahdi98

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

mahdi98

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

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

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

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

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

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

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

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل