Skip to content

Easily generate Laravel migration files from plain-language descriptions with Laravel Migration AI. This package simplifies the migration creation process, allowing developers to translate their ideas into actionable database migrations quickly.

License

Notifications You must be signed in to change notification settings

LekeneCedric/laravel-migration-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Laravel Migration AI

A Laravel package that uses AI to generate database migrations from plain-language descriptions, simplifying the migration creation process.

Table of Contents

Installation

  1. Install the package via Composer:

    Run the following command in your Laravel project:

    composer require --dev cedric-lekene/laravel-migration-ai
  2. 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.

About

Easily generate Laravel migration files from plain-language descriptions with Laravel Migration AI. This package simplifies the migration creation process, allowing developers to translate their ideas into actionable database migrations quickly.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages