patrickquijano/laravel-migration

此 Laravel 包通过覆盖核心 Laravel 迁移类提供了扩展功能。

v1.0.2 2024-08-19 01:07 UTC

This package is auto-updated.

Last update: 2024-09-28 00:42:32 UTC


README

此 Laravel 包为数据库迁移管理提供了增强功能。它扩展了核心 Blueprint 类和 Schema 门面,以简化您的迁移体验。

功能

  • 标准化时间精度:确保所有与时间相关的数据库类型(如 datetimetimestamp)默认使用 6 位精度(而不是默认的 0 位精度)。
  • 自动形态索引:自动为所有使用形态关系(如 morphTomorphMany 等)创建的列添加索引,以提高查询性能。

安装

composer require patrickquijano/laravel-migration

使用

要在现有迁移中使用此包,只需重命名以下类

  1. Illuminate\Database\Schema\Blueprint 替换为 LaravelMigration\Database\Schema\Blueprint
  2. Illuminate\Support\Facades\Schema 替换为 LaravelMigration\Support\Facades\Schema

示例(之前)

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->timestamp('email_verified_at')->nullable();
        // ...
    });
}

示例(之后)

use LaravelMigration\Database\Schema\Blueprint;
use LaravelMigration\Support\Facades\Schema;

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->timestamp('email_verified_at')->nullable();
        // ...
    });
}

发布占位符文件(可选)

为了方便,您可以使用带有更新导入的占位符文件来发布您的未来迁移

php artisan vendor:publish --tag=laravel-migration-stubs

这将在您的 stubs 目录中创建新的占位符文件,反映包的类。

好处

  • 提高代码一致性:强制执行时间数据库类型的标准化时间精度。
  • 增强性能:形态关系上的自动索引导致查询更快。
  • 简化开发:发布占位符文件简化了迁移创建,并带有预配置的导入。

我们鼓励您使用此包来简化您的 Laravel 迁移开发,并确保数据库性能最优。