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