brodsolutions/laravel-dynamic-migrate

dev-main 2023-10-19 20:14 UTC

This package is auto-updated.

Last update: 2024-10-01 00:11:15 UTC


README

Laravel Dynamic Migrate 包允许您根据 Eloquent 模型动态创建或更新数据库表。这可以为您节省时间和精力,因为您不再需要在更改模型时手动创建或更新数据库表。

安装

您可以通过 Composer 安装 Laravel Dynamic Migrate 包

composer require brodsolutions/laravel-dynamic-migrate

安装包后,您可以使用以下命令生成必要的迁移文件

php artisan dynamic:migrate

用法

要使用 Laravel Dynamic Migrate 包,您需要将 setColumns() 方法添加到您的 Eloquent 模型中。此方法应使用 Illuminate\Database\Schema 命名空间中的 Blueprint 类定义数据库表的列。以下是一个示例

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Schema\Blueprint;
use Feyyazcankose\LaravelDynamicMigrate\DynamicMigration;

class MyModel extends Model
{
    protected $table = 'my_model';

    public function setColumns(Blueprint $table)
    {
        $table->increments('id');
        $table->string('name');
        $table->text('description')->nullable();
        $table->timestamps();
    }

    // Optional: You can also define an `updateColumns()` method to update your table columns
    // public function updateColumns(Blueprint $table)
    // {
    //     DynamicMigration::renameColumn('old_column_name', 'new_column_name',$this->table, $table);
    //     DynamicMigration::dropColumn('column_to_delete',$this->table, $table);
    //     DynamicMigration::addColumn('new_column_name',$this->table, function(Blueprint $table) {
    //         $table->string('new_column_name')->nullable();
    //     });
    //     DynamicMigration::changeColumn('column_to_change',$this->table, function(Blueprint $table) {
    //         $table->string('column_to_change')->nullable();
    //     });
    // }
}

一旦您为模型定义了 setColumns() 方法,您就可以运行 dynamic:migrate 命令来生成或更新您的数据库表

php artisan dynamic:migrate

贡献如果您在 Laravel Dynamic Migrate 包中发现任何问题,或者如果您有关于新功能或改进的建议,请随时在 GitHub 上提交问题或拉取请求。

许可协议Laravel Dynamic Migrate 包是开源软件,受 MIT 许可证的许可。