/transporter

Migration Toolkit: Creating ORM Compatible Structure from Legacy Database

Primary LanguagePHPMIT LicenseMIT

Migration Toolkit: Creating ORM Compatible Structure from Legacy Database

Join the chat at https://gitter.im/orchestral/platform/components

Have you ever taken a project that had a messy, unstructured database design? Have you ever wish you can transform those project to become more Eloquent friendly?

Latest Stable Version Total Downloads MIT License Build Status Coverage Status Scrutinizer Quality Score

use App\User;
use Illuminate\Database\Query\Builder;
use Orchestra\Transporter\Blueprint;
use Orchestra\Transporter\Schema;

Schema::table('member', function (Blueprint $blueprint) {
    $blueprint->connection('legacy')
        ->key('member_id')
        ->filter(function (Builder $query) {
            $query->where('active', '=', 1);
        })->transport(function ($data) {
            return new User([
                'email' => $data->u_email,
                'password' => $data->u_password,
            ]);
        });
})->start();

Version Compatibility

Laravel Transporter
5.1.x 3.1.x
5.2.x 3.2.x
5.3.x 3.3.x@dev
5.4.x 3.4.x@dev

Installation

To install through composer, simply put the following in your composer.json file:

{
    "require": {
        "orchestra/transporter": "~3.1"
    }
}

And then run composer install to fetch the package.

Quick Installation

You could also simplify the above code by using the following command:

composer require "orchestra/transporter=~3.1"

Setup

For simplicity, Transporter Component doesn't include any service provider. You can simply run the migration via:

php artisan migrate --path=vendor/orchestra/transporter/resources/database/migrations