在Laravel中,是进行反向工程还是自动生成实体更好?

4
我通常使用SF2以及Doctrine。通过Doctrine,实体可以自动生成。如果你在MySQL Workbench等软件中建立模式,则可以进行反向工程。
我对Laravel还不太熟悉,是否也有类似的功能呢?我想使用Laravel,因为我的项目很小,但我不想为所谓的“迁移”编写所有代码,感觉非常无聊。
那么在Laravel中是否有生成这些内容的方式呢?也许我需要在Laravel中使用Doctrine来实现此功能?
2个回答

10
如果你想从现有的 MySQL 数据库生成迁移文件,可以使用一个名为 XCMer/larry-four-generator 的 Laravel 包。除了反向工程之外,它还具有许多其他功能。
引用块中提到的 Larry Four 是一个 Laravel 4 包,提供高级模型和迁移生成功能。借助 Larry,您可以轻松使用简单的 DSL 快速记录您的想法的数据架构,并仅需单击一次即可生成迁移和模型。Larry 还可以分析您现有的数据架构并为您生成一些魔法。
请尝试原始的最佳主分支 https://github.com/XCMer/larry-four-generator/tree/master 或者我的 Extended Models 分支提供额外的功能 https://github.com/XCMer/larry-four-generator/tree/Gadoma-extendedmodels

最终看起来 Larry 无法自动生成模型,我必须编写这些称为“输入”的东西,我错了吗?迁移已经创建,但我更关心模型。 - Lory Huz
你说得没错,但是写输入很快很容易 - 看一下这个链接 https://github.com/XCMer/larry-four-generator#a-birds-eye-view - Gadoma

7
据我所知,使用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) 在此之后,如果你需要对你的架构进行任何更改,只需创建新的迁移并进行更改即可。

尚未测试,但应该可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接