بخش اول - تعریف و اجرای Migrationها
کلاس Blueprint در لاراول به عنوان ابزاری در مایگریشنها استفاده میشود که امکان تعریف، تغییر و حذف ستونها و ویژگیهای جداول پایگاه داده را فراهم میکند. این کلاس همراه با متدهای Schema به کار میرود و مجموعهای از متدها را برای مدیریت ستونها و ایندکسها ارائه میدهد.
مثال:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
});در این مثال، کلاس Blueprint برای تعریف ساختار جدول users استفاده شده است. این جدول دارای سه ستون اصلی است.
از این قسمت به بررسی و توضیح متد های مدیریت جداول می پردازیم.
1- متد bigIncrements
این متد یک ستون کلید اصلی با نوع داده BIGINT ایجاد میکند که مقدار آن به صورت AUTO_INCREMENT خواهد بود.
$table->bigIncrements('id');2- متد bigInteger
این متد یک ستون عدد صحیح بزرگ (BIGINT) ایجاد میکند که میتواند برای ذخیره اعداد بزرگ استفاده شود.
$table->bigInteger('views');3- متد binary
این متد یک ستون با نوع داده باینری برای ذخیره دادههای خام (مانند فایلها) ایجاد میکند.
$table->binary('file_data', length: 16, fixed: true);4- متد boolean
این متد یک ستون Boolean ایجاد میکند که برای ذخیره مقادیر منطقی استفاده میشود.
$table->boolean('is_active');5- متد char
این متد یک ستون متنی با طول ثابت ایجاد میکند.
$table->char('code', length: 10);6- متد dateTimeTz
این متد یک ستون تاریخ و زمان با پشتیبانی از منطقه زمانی (timezone) ایجاد میکند.
$table->dateTimeTz('start_time', precision: 0);7- متد dateTime
این متد یک ستون تاریخ و زمان بدون منطقه زمانی ایجاد میکند.
$table->dateTime('created_at', precision: 0);8- متد date
این متد یک ستون برای ذخیره تنها تاریخ (بدون زمان) ایجاد میکند.
$table->date('birth_date');9- متد decimal
این متد یک ستون عددی دقیق با نقطه اعشار ایجاد میکند.
$table->decimal('price', total: 10, places: 2);در این مثال، ستون price برای ذخیره اعداد با حداکثر 10 رقم و 2 رقم اعشار ایجاد میشود.
10- متد double
این متد یک ستون عددی با دقت شناور (دقت کمتر از decimal) ایجاد میکند.
$table->double('rating');11- متد enum
این متد یک ستون از نوع ENUM ایجاد میکند که مقادیر آن باید از مجموعهای از مقادیر از پیش تعریفشده باشد.
$table->enum('status', ['pending', 'approved', 'rejected']);12- متد float
ایجاد ستون عددی شناور (مانند double) که برای اعداد تقریبی مناسب است.
$table->float('amount', precision: 53);13- متد foreignId
ایجاد ستون عددی برای استفاده به عنوان کلید خارجی، معمولاً با نام id جدول مرجع.
$table->foreignId('user_id');14- متد foreignIdFor
ایجاد ستون کلید خارجی و مشخص کردن کلاس مدل مرجع.
$table->foreignIdFor(User::class);
15- متد foreignUlid
ایجاد کلید خارجی با نوع ULID.
$table->foreignUlid('user_id');16- متد foreignUuid
ایجاد کلید خارجی از نوع UUID.
$table->foreignUuid('user_id');17- متد geography
ایجاد ستون جغرافیایی برای ذخیره دادههای مکانی (مانند طول و عرض جغرافیایی).
$table->geography('coordinates', subtype: 'point', srid: 4326);18- متد geometry
ایجاد ستون هندسی برای ذخیره دادههای مکانی.
$table->geometry('positions', subtype: 'point', srid: 0);19- متد id
ایجاد ستون کلید اصلی به صورت خودکار.
$table->id();
20- متد increments
ایجاد کلید اصلی AUTO_INCREMENT از نوع INT.
$table->increments('id');21- متد integer
ایجاد ستون عدد صحیح.
$table->integer('votes');22- متد ipAddress
ایجاد ستونی برای ذخیره آدرس IP.
$table->ipAddress('visitor');23- متد json
ایجاد ستون برای ذخیره دادههای JSON.
$table->json('options');24- متد jsonb
مشابه json، اما برای دیتابیسهای پشتیبانیکننده از نوع JSONB (مانند PostgreSQL) استفاده میشود.
$table->jsonb('options');25- متد longText
ایجاد ستون متنی طولانی.
$table->longText('description');#laravel #لاراول #فصل_۵
@AmirhDeveloper
.