Generate database migration file for CatchAdmin module.
创建数据库迁移文件。
modules/{Module}/database/migrations/{timestamp}_create_{table}_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('{table}', function (Blueprint $table) {
$table->id();
// Business fields (generated from definition)
// CatchAdmin standard fields
$table->unsignedInteger('creator_id')->default(0);
$table->unsignedInteger('created_at')->default(0);
$table->unsignedInteger('updated_at')->default(0);
$table->unsignedInteger('deleted_at')->default(0);
// Indexes
$table->index(['status', 'deleted_at']);
});
}
public function down(): void
{
Schema::dropIfExists('{table}');
}
};
| Type | Migration Code |
|---|---|
| string(n) | $table->string('name', n) |
| text | $table->text('description')->nullable() |
| integer | $table->unsignedInteger('count')->default(0) |
| decimal(m,n) | $table->decimal('price', m, n) |
| tinyint | $table->tinyInteger('status')->default(1) |
| foreign_key | $table->unsignedBigInteger('category_id')->default(0)->index() |
| date | $table->date('birth_date')->nullable() |
| datetime | $table->dateTime('published_at')->nullable() |
| json | $table->json('options')->nullable() |
timestamps()deleted_at unsigned integer,不使用 softDeletes()index()