2016-03-25 13 views
3

Ich erstelle ein Paket und möchte db Samen darin haben. All diese Seeds werden einige neue Zeilen zu einer Tabelle hinzufügen, die bereits existiert. Ich möchte auch eine "unseed" -Option, um diese Zeilen zu entfernen, wenn das Paket deinstalliert wird.Laravel 5.2 Datenbank Samen in Paketen?

Ich weiß nicht, wie ich vorgehen soll? Was ist die beste Vorgehensweise?

Dank

+0

I * grübel * [Lehre Migrations] (http://www.doctrine-project.org/projects/migrations.html) bietet diese Art von Funktionalität (wie gut wie einige andere). Es sollte auch von Doctrine ORM abgekoppelt werden, also sollte es nicht ein Problem sein, es in Laravel mit Eloquent zu verwenden. (Jemand korrigiert mich, wenn ich falsch liege.) –

Antwort

5

Die einfachste Möglichkeit ist, einen Samen Klasse wie gewohnt zu erstellen und Benutzer anweisen, den db:seed Befehl mit seiner --class[=CLASS] Option auszuführen.

Zum Beispiel könnte Ihr Paket Seed-Klassen MyPackage\Seeds\Install enthalten, um Zeilen hinzuzufügen, und MyPackage\Seeds\Remove, um sie zu entfernen. Benutzer des Pakets ausführen können diese Samen mit:

php artisan db:seed --class="MyPackage\Seeds\Install" 
php artisan db:seed --class="MyPackage\Seeds\Remove"