cedric-lekene / laravel-migration-ai
A Laravel package that uses AI to generate database migrations from plain-language descriptions, simplifying the migration creation process
Requires
- php: ^8.2
- ext-curl: *
- laravel/framework: ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- mockery/mockery: ^1.6.10
- orchestra/testbench: ^7.0 || ^8.0
- phpunit/phpunit: ^9.0 || ^10.0
This package is auto-updated.
Last update: 2025-04-27 20:46:44 UTC
README
A Laravel package that uses AI to generate database migrations from plain-language descriptions, simplifying the migration creation process.
Table of Contents
Installation
-
Install the package via Composer:
Run the following command in your Laravel project:
composer require --dev cedric-lekene/laravel-migration-ai
-
Register the Service Provider (if not using auto-discovery):
If your Laravel version does not support package auto-discovery, you will need to register the service provider in your
config/app.php
file:'providers' => [ // Other Service Providers CedricLekene\\LaravelMigrationAI\\LaravelMigrationAIServiceProvider::class, ],
Configuration
To use the package, you need to set up your environment variables. Add the following keys to your .env
file:
GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL=gemini-1.5-flash
Environment Variables
- GEMINI_API_KEY: Your API key for Gemini.
- GEMINI_MODEL: (Optional) Specify the model used for Gemini (default:
gemini-1.5-flash
).
Note:
GEMINI_API_KEY
must be defined in your environment variables.
Usage
Once the package is installed and configured, you can generate a migration file using the command below.
Commands
- make:migration-ai: Generate a migration file from a plain-language description.
Example Command
php artisan make:migration-ai migration_name description="description about the content of migration"
Example
php artisan make:migration-ai add_fields_in_users_table description=" Add a new column named 'age'(integer|nullable|default value 0) , 'sexe'(string|nullable), 'phone'(string|nullable)"
Real Output
This command will create a migration file similar to the following:
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('users', function (Blueprint $table) { $table->integer('age')->nullable()->default(0); $table->string('sexe')->nullable(); $table->string('phone')->nullable(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('age'); $table->dropColumn('sexe'); $table->dropColumn('phone'); }); } }
This command will create a migration file based on the provided description.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md for details on how to contribute to this project.