phattarachai/db-snapshot-sync-laravel
A Laravel package for capturing database snapshots and syncing them across environments. It simplifies backing up, transferring, and restoring database state during development, testing, and deployment, with Artisan commands and configurable connections.
snapshot:sync lets teams pull realistic database snapshots into non-production environments for local development, QA, demos, and CI fixtures. This supports decisions about how much effort to invest in seeders, anonymization pipelines, or buying a managed data-masking product.local, development) to a denylist (everything except production). Product and platform teams should treat this as a safety-default review: staging, QA, CI, and preview environments now become sync targets by default unless explicitly denied. This is directly relevant to policies around where production data may land.allowed_environments and will override the new default. Teams planning upgrades need a deliberate config migration step, otherwise the safety behavior they expect from v1.4.0 will not apply.Adopt when:
snapshot:sync) rather than custom scripts.Look elsewhere when:
denied_environments as infrastructure grows, an allowlist-based or platform-managed approach is safer.Executive summary: db-snapshot-sync-laravel is a small Laravel package that standardizes how database snapshots are pulled into non-production environments. v1.4.0 makes snapshot:sync run by default in every environment except those explicitly denied (default: production), replacing the previous allowlist default of local and development. That is a more convenient default for staging and CI, but it widens the blast radius if environment policy is not maintained—so adoption should be paired with an explicit environment denylist and a config migration step for existing installs.
For engineering: the package reduces bespoke sync scripts and gives a consistent artisan command. The v1.4.0 behavior change is the key upgrade risk: configs published under v1.3 or earlier hard-code allowed_environments, which still wins over the new denied_environments default. Upgrading teams must replace the sync block with the package’s published config to actually get the new default. Recommend treating this as a required upgrade task, not an optional cleanup.
For product/security: decide by policy which environments may receive snapshots—especially staging, preview apps, and CI—rather than accepting the package default. If production data is involved, require masking or use non-production snapshots, because the package handles transport, not anonymization. The v1.4.0 default is convenient but permissive; the safe operating model is an explicit denylist maintained alongside environment provisioning.
How can I help you explore Laravel packages today?