smithery.ai

migration

Generate database migration file for CatchAdmin module.

First seen Mar 19, 2026

Installation

$ npx skills add https://smithery.ai

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.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

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 seen on skills.sh
  2. First recorded snapshot · 4 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()