Моему приложению нужен предварительно зарегистрированный набор данных для работы. Поэтому мне нужно вставить их в базу данных при настройке приложения.
Laravel предлагает два механизма:
- Миграции базы данных: "Они позволяют команде изменять схему базы данных и оставаться в курсе текущего состояния схемы".
- Заполнение базы данных: "Laravel также включает в себя простой способ заполнить вашу базу данных тестовыми данными, используя начальные классы".
Когда я читаю это описание, ни одно из этих решений не кажется адаптированным.
Подобный вопрос был qaru.site/info/188263/... и ответил. В ответе предлагается использовать сеялку базы данных для заполнения базы данных путем определения текущей среды:
<?php
class DatabaseSeeder extends Seeder {
public function run()
{
Eloquent::unguard();
if (App::environment() === 'production')
{
$this->call('ProductionSeeder');
}
else
{
$this->call('StagingSeeder');
}
}
}
Конечно, это решение работает. Но я не уверен, что это правильный способ сделать это, потому что, вставляя данные с помощью сеялок, вы теряете все преимущества механизма миграции (обновление базы данных, откат...)
Я хочу знать, что является лучшей практикой в этом случае.