Download the PHP package webed/seed-flow without Composer
On this page you can find all versions of the php package webed/seed-flow. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download webed/seed-flow
More information about webed/seed-flow
Files in webed/seed-flow
Package seed-flow
Short Description SeedFlow - manage seeders like migrations with environment support, rollback, and strict execution order.
License MIT
Informations about the package seed-flow
SeedFlow
Русский | English
SeedFlow — Laravel-пакет для управления сидерами как миграциями: строгий порядок, учет выполненных, привязка к среде (env), rollback.
Для чего этот пакет?
Во многих проектах stage/test/prod — это большие “боевые” базы данных. Чтобы новому разработчику начать работу, часто приходится:
- скачивать дамп к себе (долго, тяжело, иногда невозможно);
- или подключаться к удаленной базе, рискуя повлиять на ее стабильность и/или допустить утечку данных.
Это не только неудобно, но и создает существенные риски безопасности и конфиденциальности.
Отсутствие сидеров в проекте — антипаттерн, который заметно замедляет онбординг и усложняет воспроизводимость окружения.
SeedFlow помогает строить разработку и тестирование на искусственных данных:
- данных обычно нужно не много, но они должны покрывать кейсы для удобного ручного/авто тестирования;
- в тестовой базе можно задать “удобные” правила (например, один пароль для всех, email в стиле
[email protected]); - можно завести отдельные сидеры под test-среду, чтобы не повторять одно и то же в тестах.
Быстрый старт
1) Установите пакет
2) Создайте таблицу учета (обычная миграция Laravel)
3) Создайте сидер для нужной среды
4) Запустите сидирование
5) (опционально) Откатите последний сидер
Проверить требования
- PHP 8.2+
- Laravel 8+
Понять структуру
Сидеры лежат по средам:
database/seeders/SeedFlow/dev/database/seeders/SeedFlow/test/database/seeders/SeedFlow/stage/database/seeders/SeedFlow/prod/
Таблица учета:
webed_processed_seeders(id,seeder,env,processed_at)
Создать новый сидер
- Путь:
database/seeders/SeedFlow/{env}/ - Имя файла:
timestamp_name.php(как у миграций) - Класс: отдельный для каждого env, методы
up()иdown()
Запустить сидирование
- env по умолчанию: берется из
APP_ENV - Запускаются только невыполненные сидеры (учет в
webed_processed_seeders) - Строгий порядок: по имени файла (timestamp)
Если в таблице учета обнаружены записи другой среды (например, после импорта базы), выполнение заблокировано и требует флага:
--force
Пример вывода:
2025_01_01_000001_create_roles_seeder ..... ok
Откатить сидеры
- Откатывает последние N сидеров текущей среды
- Вызывает
down()(может быть пустым) - Удаляет запись из
webed_processed_seeders
Rollback возможен только внутри одной env. Если в таблице есть сидеры другой среды → ошибка.
Использовать разные среды разработки
dev: удобные данные для локальной разработки (например, “универсальный пароль”)test: стабильные данные для автотестов/интеграционных проверокstage: данные, близкие к предпрод-окружениюprod: сидирование прод окружения (обычно осторожно и минимально)
All versions of seed-flow with dependencies
illuminate/console Version ^8.0|^9.0|^10.0|^11.0|^12.0
illuminate/database Version ^8.0|^9.0|^10.0|^11.0|^12.0
illuminate/support Version ^8.0|^9.0|^10.0|^11.0|^12.0