To use Laravel Shift Blueprint with an existing Laravel project, follow these steps:
1. Install Blueprint as a development dependency using Composer:
composer require -W --dev laravel-shift/blueprint
2. Define your existing database schema in a YAML-based "draft" file. For example, create a file named `draft.yaml` in your project's root directory with the following content:
yaml
models:
User:
username: string:128
email: string:255
password: string:255
first_name: string:45
last_name: string:45
timezone: string:45
location_id: id:location
deleted_at: timestamp
remember_token: string:255
This defines a `User` model with the specified columns and types[1][2].
3. Run the `blueprint:build` Artisan command to generate the migrations:
php artisan blueprint:build draft.yaml
This will generate a migration file that matches the defined schema, including the table structure, columns, indexes, and foreign key constraints[1][4].
4. Run the migrations to create the database tables:
php artisan migrate
5. (Optional) Generate additional components like controllers, form requests, factories, etc. by updating the `draft.yaml` file. For example, add a `Post` model and a `PostController` to the draft:
yaml
models:
Post:
title: string:400
content: longtext
published_at: nullable timestamp
author_id: id:user
controllers:
Post:
index:
query: all
render: post.index
with: posts
store:
validate: title, content, author_id
save: post
send: ReviewPost
to: post.author.email
with: post
dispatch: SyncMedia
with: post
fire: NewPost
with: post
flash: post.title
redirect: posts.index
6. Run `blueprint:build` again to generate the new components:
php artisan blueprint:build draft.yaml
This will generate the `Post` model, migration, controller, form request, and related components[1][2].
By following these steps, you can easily integrate Blueprint into an existing Laravel project to rapidly generate migrations and other components based on your application's schema and requirements.
Citations:[1] https://github.com/laravel-shift/blueprint
[2] https://laravel-news.com/laravel-shift-blueprint
[3] https://blueprint.laravelshift.com
[4] https://blueprint.laravelshift.com/docs/installation/
[5] https://laracasts.com/discuss/channels/laravel/blueprint-laravel-shift