我通常使用SF2,使用Doctrine,可以自动生成实体,如果您在像MySQL Workbench这样的软件中构建模式,则可以进行逆向工程。
我是Laravel的新手,所以有办法做这两件事吗?我会使用Laravel,因为我要做一个非常小的项目,但我不想为所谓的“迁移”编写所有这些代码,看起来很无聊没有?
所以有一种方法可以在laravel中生成这些东西吗?也许我会在Laravel中使用Doctrine吗?
答案 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