2013-09-23 33 views
5

我可能誤解了它的工作原理,但是最好的方法是什麼?我有一些想法,但它似乎很詭異。Laravel DB種子 - 測試數據v樣品數據

我有一組樣本數據用於測試我的應用程序。這是通過Laravel的內置播種機播種的。這包含像示例用戶,地址,文件等東西。

我也有一套默認數據應該在生產中。我目前直接在遷移中添加這個。例如,如果我加入了account_roles一個表,我可能包括在遷移

$account_admin = array('role' => 'Account Administrator', 'flag' => 'ACCOUNT_ADMIN'); 
$account_owner = array('role' => 'Account Administrator', 'flag' => 'ACCOUNT_OWNER'); 
DB::table('account_roles')->insert($account_admin); 
DB::table('account_roles')->insert($account_owner); 

這樣的底部以下,對生產,我只是遷移數據庫中插入任何生產準備數據庫值,和在分期/開發中,我可以刷新遷移,然後使用示例數據對數據庫進行種子處理。

有沒有其他(更好)的方法來做到這一點?

回答

8

需要

<?php 

class DatabaseSeeder extends Seeder { 

    public function run() 
    { 
      Eloquent::unguard(); 

      if (App::environment() === 'production') 
      { 
       $this->call('ProductionSeeder'); 
      } 
      else 
      { 
       $this->call('StagingSeeder'); 
      } 
    } 

} 
+0

這工作,但你可以在你的播種機文件運行在當前的環境檢查和種子,闡明正確的語法是這樣的: '如果程序(App ::環境()==='production'){...}' – racl101