یکی از جذابترین قسمت های لاراول مدیریت دیتابیس و migration ها است. وقتی بخواهیم فیلدهای دیتابیس را تغییر دهیم و در کل برای ایجاد هر تغییر در دیتابیس لازمه که یک migration ایجاد بشه که دیتاهای قبلی که در طول پروژه وارد شدند حفظ بشن و از طرفی وقتی به صورت تیمی کاری انجام میشه هم اعضای تیم در جریان روند تغییرات باشند و هم در هنگام استفاده از گیت ، اگر لازم شد rollback کنیم به تغییرات قبلی، اینکار انجام شدنی و راحت باشه.
برای یکی از فیلدها مجبور شدم که type فیلد رو از string به text تغییر بدم که migration را به صورت زیر ایجاد کردم :
public function up() { Schema::table('articles', function (Blueprint $table) { $table->text('FeatureImage')->nullable()->change(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('articles', function (Blueprint $table) { $table->string('FeatureImage')->nullable()->change(); }); }
بعد از اینکه با اجرای دستور php artisan migrate با خطای زیر مواجه شدم :
برای رفع مشکل نیاز داریم که با استفاده از composer موارد لازم را نصب کنیم :
composer require doctrine/dbal
با اجرای دستور فوق ( به احتمال خیلی زیاد باید فیلترشکن فعال باشه تا بتونید نصب کنید ) مشکل رفع میشه و مجددا عملیات migrate را انجام دهیم به خوبی کار انجام میشه :
( لاراول ۵.۴ )