brodsolutions / laravel-dynamic-migrate
dev-main
2023-10-19 20:14 UTC
Requires
- php: ^7.3|^8.0|^8.1|^8.2
- illuminate/support: ^7.3|^8.0|^8.1|^9.0
- laravel/framework: ^8.40|^9.0|^10.0
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 许可证的许可。