MySQL to Laravel Seeder
, (*1)
I was in need of a tool to export Data from an existing MySQL DB to a Laravel Seeder.
I searched online for it, but found not the right tool I wanted. I stumbled upon the
namelivia/mysql-to-laravel-seed., (*2)
But it ...
- ... used outdated functions
- ... forced me to create a export schema
- ... didn't create working Seeders (missing use Illuminate\Database\Seeder;)
- and the Seeders didn't look nice, (*3)
I decided to create my own version of a MySQL to Laravel Seeder Tool., (*4)
works with
| PHP Version |
MySQL Version |
| 5.6.17 |
5.6.25 |
| 5.6.17 |
5.7.10 |
| 7.0.2 |
5.6.25 |
| 7.0.2 |
5.7.10 |
I welcome all notifications about working environments.
Just mail me (info@schwarzer.it) and
I'll put it up here, or send a merge request., (*5)
Simple Examples
Create a file named export.php in your Laravel root (where your .env is) and execute it by using php ./export.php . Done., (*6)
Use without Composer autoload
<?php
require_once __DIR__.'/path/to/schwarzer/laravel-mysql-to-seeder/src/Export.php';
$export = new \Schwarzer\LaravelHelper\MySQLToSeeder\Export('hostname','database','username','password',3306);
$export->generateExport(
null, // null equals "All Tables" ( $this->getAllTableNames() )
'./database/seeds', // if null './database/seeds' is applied
['these','are','boolean','values'],
['timestamp_column','created_at', 'updated_at'],
['type','date']
);
Use with Composer autoload
<?php
require __DIR__.'/vendor/autoload.php';
$export = new \Schwarzer\LaravelHelper\MySQLToSeeder\Export('hostname','database','username','password',3306);
$export->generateExport(
null, // null equals "All Tables" ( $this->getAllTableNames() )
'./database/seeds', // if null './database/seeds' is applied
['these','are','boolean','values'],
['timestamp_column','created_at', 'updated_at'],
['type','date']
);