paulobunga/parkman-schema

Generate Laravel model and migrations from Prisma Schema

Maintainers

Package info

github.com/paulobunga/parkman-schema

pkg:composer/paulobunga/parkman-schema

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v0.0.2-alpha 2024-08-03 04:49 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 everything
php artisan parkman:generate path/to/your/schema.prisma --all

# Generate specific components (migrations are generated by default if no flags)
php artisan parkman:generate path/to/your/schema.prisma --models --controllers

# Individual commands (legacy)
php artisan parkman:generate-migrations path/to/your/schema.prisma
php artisan parkman:generate-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.