TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #345 353
فصل پنج - Migrations and Database

بخش اول - تعریف
و اجرای Migrationها

1- متد after
مشخص می‌کند که ستون باید بعد از ستون دیگری قرار گیرد.
این متد فقط برای برخی پایگاه‌های داده (مانند MySQL) پشتیبانی می‌شود.
$table->string('middle_name')->after('first_name');


2- متد autoIncrement
مشخص می‌کند که ستون به صورت AUTO_INCREMENT تعریف شود.
$table->integer('id')->autoIncrement();


3- متد charset
تنظیم charset برای ستون.
$table->string('name')->charset('utf8mb4');


4- متد collation
تنظیم collation برای ستون.
$table->string('name')->collation('utf8mb4_unicode_ci');


5- متد comment
اضافه کردن یک توضیح برای ستون.
$table->integer('age')->comment('Age of the user in years');


6- متد default
مقدار پیش‌فرض برای ستون را تنظیم می‌کند.
$table->string('status')->default('active');


7- متد first
مشخص می‌کند که ستون باید در ابتدای جدول قرار گیرد.
این متد فقط برای برخی پایگاه‌های داده (مانند MySQL) پشتیبانی می‌شود.
$table->string('first_name')->first();


8- متد from
مقدار شروع را برای ستون عددی AUTO_INCREMENT مشخص می‌کند.
$table->integer('id')->autoIncrement()->from(1000);


9- متد invisible
مشخص می‌کند که ستون در نتایج کوئری‌های SELECT به‌صورت پیش‌فرض مخفی باشد.
این ویژگی فقط در MySQL 8.0.23 یا بالاتر پشتیبانی می‌شود.
$table->string('secret_code')->invisible();


10- متد nullable
مشخص می‌کند که ستون می‌تواند مقدار NULL داشته باشد.
$table->string('middle_name')->nullable();


11- متد storedAs
$table->integer('price');
$table->integer('tax');
$table->integer('total')->storedAs('price + tax');

ستون total مقدار price + tax را ذخیره می‌کند.

12- متد unsigned
مشخص می‌کند که ستون عددی بدون علامت (unsigned) باشد.
$table->integer('votes')->unsigned();


13- متد useCurrent
مقدار پیش‌فرض ستون را به زمان فعلی تنظیم می‌کند. معمولاً برای ستون‌های timestamp یا datetime استفاده می‌شود.
$table->timestamp('created_at')->useCurrent();


14- متد useCurrentOnUpdate
مشخص می‌کند که ستون در زمان به‌روزرسانی رکورد به‌صورت خودکار مقدار زمان فعلی را دریافت کند.
$table->timestamp('updated_at')->useCurrentOnUpdate();


15- متد virtualAs
ایجاد یک ستون محاسباتی مجازی (Virtual Generated Column). مقدار این ستون در دیتابیس ذخیره نمی‌شود.
$table->integer('price');
$table->integer('tax');
$table->integer('total')->virtualAs('price + tax');

ستون total مقدار price + tax را محاسبه می‌کند ولی ذخیره نمی‌شود.

16- متد generatedAs
تعریف یک ستون تولیدشده (Generated Column) با استفاده از عبارت SQL.
$table->integer('price');
$table->integer('tax');
$table->integer('total')->generatedAs('price + tax');


17- متد always
معمولاً همراه با ستون‌های تولیدشده (Generated Column) استفاده می‌شود و مقدار آن همیشه از عبارت SQL تولید می‌شود.
$table->integer('total')->generatedAs('price + tax')->always();


18- متد change
برای تغییر ویژگی‌های ستون‌های موجود در یک جدول استفاده می‌شود.
این متد میتواند پس از 17 متد قبلی فراخوانی شود و ویژگی های ستون فعلی را ویرایش کند.
$table->integer('id')->autoIncrement()->change();

در این مثال، ستون id به صورت AUTO_INCREMENT ایجاد نشده است، اما با این متد به صورت AUTO_INCREMENT ویرایش می شود.

19- متد dropMorphs
این متد برای حذف ستونی که مربوط به Polymorphic Relations است، استفاده می‌شود.
$table->dropMorphs('commentable');


20- متد dropRememberToken
این متد برای حذف ستونی که برای ذخیره‌ی remember token در جداول کاربران استفاده می‌شود، به کار می‌رود.
$table->dropRememberToken();


21- متد dropSoftDeletes
این متد برای حذف ستون‌هایی که مربوط به Soft Deletes هستند استفاده می‌شود.
$table->dropSoftDeletes();


22- متد dropSoftDeletesTz
این متد مشابه dropSoftDeletes است، اما برای ستون‌هایی که از نوع timestamp with timezone استفاده می‌کنند.

23- متد dropTimestamps
این متد برای حذف ستون‌های created_at و updated_at استفاده می‌شود.
$table->dropTimestamps();


24- متد dropTimestampsTz
این متد مشابه dropTimestamps است، اما برای ستون‌های created_at و updated_at که با نوع timestamp with timezone ذخیره شده‌اند، استفاده می‌شود.

#laravel #لاراول #فصل_۵
@AmirhDeveloper
.
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →