Laravel中的实体逆向工程还是自动生成?

时间:2013-11-28 17:16:40

标签: php laravel reverse-engineering

我通常使用SF2,使用Doctrine,可以自动生成实体,如果您在像MySQL Workbench这样的软件中构建模式,则可以进行逆向工程。

我是Laravel的新手,所以有办法做这两件事吗?我会使用Laravel,因为我要做一个非常小的项目,但我不想为所谓的“迁移”编写所有这些代码,看起来很无聊没有?

所以有一种方法可以在laravel中生成这些东西吗?也许我会在Laravel中使用Doctrine吗?

3 个答案:

答案 0 :(得分:9)

如果要从现有的mysql数据库生成迁移文件,可以使用名为XCMer / larry-four-generator的Laravel包。除了逆向工程,它还有许多其他功能。

  

Larry Four是Laravel 4套装,提供高级型号和   迁移生成功能。感谢拉里,你可以很快   在简单的DSL和genereate中记下您的想法的数据方案   只需单击一下即可从中迁移和模型。拉里也可以   分析你现有的数据方案,并为你产生一些魔力。

尝试原始的最佳主分支
https://github.com/XCMer/larry-four-generator/tree/master

或我的扩展模型分叉提供附加功能
https://github.com/XCMer/larry-four-generator/tree/Gadoma-extendedmodels

答案 1 :(得分:3)

据我所知,仍然无法使用Laravel将模式转换为迁移文件。但你可以:

1)导出MySQL架构

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

2)创建迁移以使用您的架构

php artisan migration:make create_schema

3)启动完整架构

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)之后,如果您需要对架构进行任何更改,只需创建新的迁移并进行更改。

未经测试,但应该可以使用。

答案 2 :(得分:0)

我创建了几个可以对现有MySQL数据库进行逆向工程的类: https://stackoverflow.com/a/29584887/3432720