Очевидный способ применять определенные семена, а не посеять все это с помощью --class
флаг:
php artisan db:seed --class[=CLASS]
Есть ли способ трек какие сеялки были применены до сих пор в Laravel (скажем, точно так же, как вы можете отслеживать, как выполнялись миграции, запустив php artisan migrate:status
)?
Кроме того, есть ли способ применить спектр сидеров (вместо того, чтобы указывать каждый класс индивидуально, что очень громоздко).
Что заставило меня задуматься об этом, так это то, что я написал в книге «Создание API, которые вы не будете ненавидеть»:
28 foreach ($tables as $table) {
29 DB::table($table)->truncate();
30 }
31
32 $this->call('MerchantTableSeeder');
33 $this->call('PlaceTableSeeder');
34 $this->call('UserTableSeeder');”
Идея состоит в том, что каждый раз, когда вы хотите запустить основную сеялку, вы должны начинать с чистого листа. Но это непрактично для нас, по крайней мере, в нашей промежуточной среде, которая всегда будет содержать комбинацию данных о посеве и ручных данных, вводимых нашими сотрудниками отдела контроля качества / операций.
Я полагаю, что этот пакет был создан для запуска таких систем, как миграция: https://github.com/slampenny/SmartSeeder. Я думаю, что он будет делать то, что вы ищете.
Причина, по которой об этом так мало написано, заключается в том, что в большинстве случаев сеялки используются только для инициализации базы данных с данными вручную и не являются частью более сложного процесса развертывания.
Это выглядит как чрезмерное усложнение работы семян или недостаточное усложнение среды обеспечения качества.
Может быть, есть разные семена для развития и все, что вы называете постановкой / ка?