php - seeders - ¿Cómo tener diferentes sembradoras por ambiente en Laravel 4?
nullable laravel (1)
Tengo una pregunta simple pero no he encontrado una respuesta en la web. Quizás mis palabras clave sean falsas.
Así que estoy desarrollando una aplicación en Laravel 4. Y necesito sembrar la base de datos con diferentes valores de acuerdo con el entorno activo actual.
Entonces, por ejemplo, si estoy en el entorno local , quiero tener datos de prueba, etc. Pero cuando estoy en el entorno de producción , solo quiero tener un usuario administrador.
¿Tiene Laravel una solución integrada para eso?
De lo contrario, cómo se puede verificar qué entorno está activo en el archivo app/seeds/DatabaseSeeder.php
. Entonces puedo llamar a diferentes sembradoras de acuerdo con el medio ambiente.
No hay un controlador integrado para diferentes entornos de la manera que le gustaría.
Solución
Dentro de la clase seeder, debería poder usar App :: environment () para detectar el entorno y hacer lógica en función de eso.
Puede agregar eso dentro de cada clase de seeders de tabla, o dentro del archivo DatabaseSeeder.php :
public function run()
{
Eloquent::unguard();
if( App::environment() === ''development'' )
{
$this->call(''UserTableSeeder'');
}
}
Alternativamente
Considere agregar múltiples conexiones de bases de datos dentro de su archivo app/config/database.php
. De esta forma, en lugar de generar por entornos, puede llenar las bases de datos desde múltiples conexiones dentro del mismo entorno (y el entorno aún puede cambiar pero tiene 2 o más conexiones de bases de datos separadas).
Si eso se ajusta a su caso de uso, vea mi respuesta en múltiples conexiones de bases de datos aquí .