paulobunga / parkman-schema
Generate Laravel model and migrations from Prisma Schema
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2025-01-03 05:40:11 UTC
README
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.