feyyazcankose/laravel-dynamic-migrate

1.0.3 2023-04-22 23:06 UTC

This package is auto-updated.

Last update: 2024-09-23 02:54:34 UTC


README

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

安装

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

composer require feyyazcankose/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 许可协议。