patrickquijano / laravel-migration
此 Laravel 包通过覆盖核心 Laravel 迁移类提供了扩展功能。
v1.0.2
2024-08-19 01:07 UTC
Requires
- php: ^8.3
- illuminate/database: ^11.10
- illuminate/support: ^11.10
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.58
- laravel/pint: ^1.16
- nunomaduro/collision: ^8.1
- orchestra/testbench: ^9.1
README
此 Laravel 包为数据库迁移管理提供了增强功能。它扩展了核心 Blueprint
类和 Schema
门面,以简化您的迁移体验。
功能
- 标准化时间精度:确保所有与时间相关的数据库类型(如
datetime
和timestamp
)默认使用 6 位精度(而不是默认的 0 位精度)。 - 自动形态索引:自动为所有使用形态关系(如
morphTo
、morphMany
等)创建的列添加索引,以提高查询性能。
安装
composer require patrickquijano/laravel-migration
使用
要在现有迁移中使用此包,只需重命名以下类
- 将
Illuminate\Database\Schema\Blueprint
替换为LaravelMigration\Database\Schema\Blueprint
- 将
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 迁移开发,并确保数据库性能最优。