Reverse engineering or Auto-Generations of Entitie

2019-01-23 09:30发布

I usually work with SF2, and with Doctrine, Entities can be generated automatically and if you build the schema in a Soft like MySQL Workbench you can do Reverse Engineering.

I'm new to Laravel so there is a way to do these both things? I would use Laravel because I've to do a very little project, but I didn't want to write all this code for what we call "Migrations", seems very boring no?

So there is a way to generate this stuff in laravel? Maybe I've to use Doctrine in Laravel for that?

3条回答
Bombasti
2楼-- · 2019-01-23 10:27

As far as I can tell there is still no way to reverse a schema to migration files, using Laravel only. But you can:

1) Export your MySQL schema

mysqldump -u root -p --no-data dbname > schema.sql

2) Create a migration to use your schema

php artisan migration:make create_schema

3) Boot your full schema

class CreateSchema extends Migration {

    public function up()
    {
        $file = file_get_contents(app_path().'/database/data/full_schema.sql', true);

        DB::unprepared($file);
    }

    public function down()
    {
    }

}

4) After that, if you need to do any changes to your schema, just create new migrations and make your changes.

Not tested, but should work.

查看更多
可以哭但决不认输i
3楼-- · 2019-01-23 10:32

I've created a couple classes that can reverse engineer an existing MySQL database: https://stackoverflow.com/a/29584887/3432720

查看更多
戒情不戒烟
4楼-- · 2019-01-23 10:33

If you want to generate migration files from an existing mysql database you can use a Laravel package called XCMer / larry-four-generator. Apart from reverse engineering it has a bunch of other features.

Larry Four is a Laravel 4 package offering advanced model and migration generation functionality. Thanks to Larry you can quickly jot down the data scheme for your idea in an easy DSL and genereate migrations and models from it with just a single click. Larry can also analyse your existing data scheme and generate some magic for you too.

Try the original best master branch
https://github.com/XCMer/larry-four-generator/tree/master

or my Extended Models fork offering additional functionality
https://github.com/XCMer/larry-four-generator/tree/Gadoma-extendedmodels

查看更多
登录 后发表回答