2013-11-28 62 views
3

我通常使用SF2和Doctrine,可以自動生成實體,如果您在像MySQL Workbench這樣的軟件中構建模式,則可以執行逆向工程。逆向工程或Laravel中的實體的自動生成?

我是Laravel的新手,所以有辦法做到這兩件事?我會使用Laravel,因爲我要做一個非常小的項目,但是我不想爲所謂的「遷移」編寫所有代碼,看起來很無聊。

所以有一種方法可以在laravel中生成這些東西?也許我必須在Laravel中使用Doctrine呢?

回答

9

如果要從現有的mysql數據庫生成遷移文件,可以使用名爲XCMer/larry-four-generator的Laravel包。除了逆向工程外,它還有其他一些功能。

Larry Four是一款Laravel 4軟件包,提供先進的模型和 遷移生成功能。感謝Larry,您可以快速地在簡單的DSL中記下您的想法的數據方案,並通過一次點擊即可創建 遷移和模型。拉里還可以分析你現有的數據方案併爲你產生一些魔力。

嘗試原來最好的主分支
https://github.com/XCMer/larry-four-generator/tree/master

或我的擴展模型叉提供額外的功能
https://github.com/XCMer/larry-four-generator/tree/Gadoma-extendedmodels

+0

最後似乎larry不能自動生成模型盟友,我必須寫這些叫做「輸入」的東西,我錯了? 遷移已創建,但我更關心模型 –

+0

你是正確的,但無論如何它快速和容易地編寫輸入 - 看看https://github.com/XCMer/larry-four-generator#a-birds -Eye視 – Gadoma

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)之後,如果您需要對模式進行任何更改,只需創建新的遷移並進行更改即可。

未測試,但應該工作。