2013-09-23 25 views
5

Prawdopodobnie nie rozumiem dokładnie, jak to działa, ale jaki jest najlepszy sposób, aby to osiągnąć? Mam coś na myśli, ale wydaje się dość odurzający.Laravel DB Seeds - Dane testowe v Przykładowe dane

Mam zestaw przykładowych danych, których używam do testowania mojej aplikacji. To jest zaszczepione przez wbudowany siewnik w Laravel. Obejmuje to przykład użytkowników, adresy, dokumenty itp.

Mam również zestaw domyślnych danych, które powinny przejść do produkcji. Obecnie dodajemy to bezpośrednio w migracji. Na przykład, jeśli byłem dodanie tabela account_roles, mogę zaliczyć na dole migracji

$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); 

ten sposób na produkcję, po prostu migracji bazy danych do wstawienia każda produkcja gotowych wartości w bazie danych, a na etapach/rozwoju, mogę odświeżyć migracje, a następnie zaimportować bazę danych z przykładowymi danymi.

Czy istnieje inny (lepszy) sposób to zrobić?

Odpowiedz

8

Można przeprowadzić kontrolę obecnej sytuacji w pliku siewnik, a nasienie, ile potrzeba

<?php 

class DatabaseSeeder extends Seeder { 

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

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

} 
+0

To działa, ale wyjaśnienie poprawnej składni to: 'if (App :: środowisko() === "produkcja") {...} ' – racl101