Laravel DB Seeds - тестовые данные 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);
Таким образом, на производстве я просто перенастраиваю базу данных, чтобы вставить любые значения базы данных, готовые к работе, а при подготовке / разработке я могу обновить миграции и затем заполнить базу данных образцами данных.
Есть ли другой (лучший) способ сделать это?
1 ответ
Вы можете запустить проверку текущей среды в своем файле сеялки и при необходимости заполнить
<?php
class DatabaseSeeder extends Seeder {
public function run()
{
Eloquent::unguard();
if (App::environment() === 'production')
{
$this->call('ProductionSeeder');
}
else
{
$this->call('StagingSeeder');
}
}
}