Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Seeder Once

Seeder Once Laravel Package

kdabrow/seeder-once

Laravel package that runs database seeders only once. It records executed seeders in a dedicated table, so repeat deployments or db:seed calls skip already-applied seeders—ideal for safely seeding production data without duplicating rows.

View on GitHub
Deep Wiki
Context7

kdabrow/seeder-once makes Laravel database seeders idempotent by tracking which ones have already executed. Each seeder runs exactly once—even across repeated php artisan db:seed calls, redeploys, or container restarts—so reference data and production seeders are never duplicated.

  • Records completed seeders in a dedicated database table
  • Skips already-run seeders automatically on later executions
  • Slots into existing DatabaseSeeder and db:seed workflows
  • Ideal for production reference data and safe, repeatable deploys
  • Minimal setup—no changes to your seeding logic
Frequently asked questions about Seeder Once
How do I install and configure Seeder Once in a Laravel app?
Install it with Composer, then publish and run its tracking migration and register the service provider as described by the package. Adopt its trait, command, or wrapper around the seeders you want to protect. Confirm the exact integration mechanics and supported Laravel, PHP, and database versions before rolling it out.
Does Seeder Once prevent db:seed from inserting duplicate seed data?
Yes, its purpose is to ensure database seeders run only once by tracking executed seeders, which helps prevent duplicate seed data during repeated deployments, migrations, tests, and setup commands. It is best treated as a narrow idempotency utility for reference or configuration data. It is not a replacement for schema migrations or general data migration tooling.
Which Laravel, PHP, and database versions are supported by Seeder Once?
The provided evaluation does not list a definitive support matrix, so verify the package's Composer constraints and README before adoption. Pin the package version and test against your application's Laravel, PHP, and database versions, including SQLite, MySQL, or PostgreSQL if you use them. Compatibility should be confirmed in local, CI, staging, and production-like environments.
How does Seeder Once know which seeders have already run?
It tracks executed seeders in a tracking table that is set up through a migration. The key question is what identifies a seeder: class name only, a checksum, or an explicit key. Confirm that behavior because it affects renamed seeders, modified seeders, and rerun decisions.
Is Seeder Once safe to use in production deployments?
Use it conditionally and pilot it with low-risk reference-data seeders first. Before broad adoption, prove failure recovery, concurrency safety, and compatibility with your deployment model in staging. In production, run it as a controlled release job after migrations and monitor the first run closely.
What happens if a protected seeder fails partway through?
The evaluation flags this as a key risk: confirm whether a seeder is marked complete before or after success and whether execution is transactional. If completion can be recorded despite partial writes, the seeder may not rerun cleanly. Until that behavior is proven, avoid using it for business-critical or non-idempotent writes.
Does Seeder Once work with multiple database connections or multi-tenant applications?
Multi-connection and multi-tenant support must be confirmed rather than assumed. Check which database connection hosts the tracking table and how tenant-specific seeders are identified. Test this explicitly if your application uses more than one connection or tenant database.
How should I test Seeder Once before adopting it?
Run a short compatibility spike, then test on both a clean database and an existing database. Verify failure recovery, concurrency behavior, logs and exit codes, and any available force-rerun path. Confirm the tracking migration is deployed before seeding in every environment.
What happens when a seeder class is renamed or its contents change?
The outcome depends on how Seeder Once identifies a seeder. If identity is class-name-only, renaming a seeder may cause it to run again, while changing its contents may not trigger a rerun. Confirm whether checksums or explicit keys are supported and include this in your runbook.
Is Seeder Once well maintained, and what alternatives should I consider?
Adoption signals are weak: about 20 stars, zero dependent packages, and a small maintainer footprint, though a recent release is positive. The MIT license is favorable, but release cadence and long-term maintenance are unproven, so pin versions and review upstream periodically. For alternatives, consider existing idempotent seeder patterns such as firstOrCreate guards, custom already-seeded flags, or keeping one-off data changes in migrations.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections