Latihan 1 dari materi Migrasi Database di Laravel — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awalnya sudah berisi migration untuk tabel products: Schema::create('products', ...) di up() dan Schema::dropIfExists('products') di down(). Biarkan keduanya, lalu ganti komentar // Tambahkan kolom dengan kolom-kolom ini:
$table->id() untuk kolom id.
name: string, maksimal 255 karakter: $table->string('name') (atau $table->string('name', 255)).
price: integer.
category: string yang boleh kosong, dengan ->nullable().
in_stock: boolean dengan nilai bawaan true, dengan ->default(true).
$table->timestamps() untuk created_at dan updated_at.
Saat dijalankan, migration-nya dijalankan seperti php artisan migrate, di database SQLite (bawaan proyek Laravel 13), dan SQL yang dikirimnya dicetak di bawah nama migration-nya, seperti php artisan migrate --pretend:
create table "products" ("id" integer primary key autoincrement not null, "name" varchar not null, "price" integer not null, "category" varchar, "in_stock" tinyint(1) not null default '1', "created_at" datetime, "updated_at" datetime)
Di SQLite, string jadi varchar dan boolean jadi tinyint(1). Di MySQL, string tertulis varchar(255).
Yang diperiksa:
- SQL-nya memuat
create table "products" dan tiap kolom persis seperti di atas: id, name dan price yang not null, category tanpa not null, in_stock dengan default '1', lalu created_at dan updated_at.
- Kodemu memuat
$table->timestamps().