smithery/jaguarjack

migration

Generate database migration file for CatchAdmin module.

Installation

$ npx skills add smithery/jaguarjack --skill migration

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/jaguarjack.

npx skills add smithery/jaguarjack

Browse all from smithery/jaguarjack

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,976 B
  • docs SUMMARY.md 72 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Step 2: Generate Migration

创建数据库迁移文件。

File Location

modules/{Module}/database/migrations/{timestamp}_create_{table}_table.php

Template

<?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}');
    }
};

Field Type Mapping

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()

Important

  • CatchAdmin 使用 unsigned integer 作为时间戳,不使用 Laravel 默认的 timestamps()
  • 软删除使用 deleted_at unsigned integer,不使用 softDeletes()
  • 外键字段需要添加 index()