paulobunga/parkman-schema

Generate Laravel model and migrations from Prisma Schema

v0.0.2-alpha 2024-08-03 04:49 UTC

This package is auto-updated.

Last update: 2025-01-03 05:40:11 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

Parkman Schema is a powerful Laravel package that generates Laravel migrations and models from Prisma schema files. It simplifies the process of transitioning from Prisma to Laravel by automatically creating the necessary database structure and Eloquent models.

Installation

You can install the package via composer:

composer require paulobunga/parkman-schema

Usage

Generate Migrations

To generate Laravel migrations from your Prisma schema:

use Paulobunga\ParkmanSchema\Parkman;

$parkman = new Parkman();
$parkman->setSchema(file_get_contents('path/to/your/schema.prisma'));
$parkman->generateMigrations();

This will create migration files in your Laravel project's database/migrations directory.

Generate Models

To generate Eloquent models from your Prisma schema:

use Paulobunga\ParkmanSchema\Parkman;

$parkman = new Parkman();
$parkman->setSchema(file_get_contents('path/to/your/schema.prisma'));
$parkman->generateModels();

This will create model files in your Laravel project's app/Models directory.

Using Artisan Commands

The package also provides Artisan commands for easy use:

# Generate migrations
php artisan parkman:migrations path/to/your/schema.prisma

# Generate models
php artisan parkman:models path/to/your/schema.prisma

Customizing Stubs

You can publish the stub files to customize the generated migrations and models:

php artisan vendor:publish --provider="Paulobunga\ParkmanSchema\ParkmanSchemaServiceProvider" --tag="stubs"

This will copy the stub files to resources/stubs/vendor/parkman-schema in your Laravel project, where you can modify them to fit your needs.

Features

  • Generates Laravel migrations from Prisma schema
  • Creates Eloquent models with relationships
  • Supports table creation, modification, and deletion
  • Handles column additions, removals, and renames
  • Manages foreign key constraints
  • Automatically reorders migrations based on dependencies

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email paulobunga.one@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.