mortezamasumi/fb-copydb
fb-copydb is a Laravel/PHP utility for duplicating Firebird databases, making it easy to copy schema and data for backups, staging, testing, or migrations. It streamlines safe database cloning through a simple, configurable workflow.
Package: mortezamasumi/fb-copydb — a Laravel artisan-command toolset for copying Firestore collections/documents between Firebase projects or environments.
Architecture fit: This is operational tooling, not application runtime code. It sits alongside — not inside — the request/response path: a service provider registers console commands, a published config file holds source/target project credentials and copy parameters, and execution happens in a CLI context. That is a good fit for Laravel shops that already use Firestore and need environment promotion (staging → prod) or project migration. It is a poor fit for anyone expecting a data-sync layer, a queue-backed replication engine, or bidirectional consistency — it is a one-shot copy utility.
Integration feasibility: Low friction. Standard Composer install, package auto-discovery, vendor:publish for config, Google service account JSON for auth. No application code changes required. The real integration cost is credential and IAM provisioning on two Firebase projects (source reader, target writer), which is an ops task, not a dev task.
Technical risk:
google/cloud-firestore (and typically the Firebase Admin SDK). Laravel 13 support was added in this release, which implies framework constraint updates — the corresponding Google SDK constraint should be verified, not assumed. Framework compatibility frequently breaks at the Google SDK layer, not the Laravel layer.Key questions:
google/cloud-firestore/kreait/firebase-php to versions that are actually installable alongside Laravel 13, and is Laravel 13 GA at our target deployment date?Stack fit: Laravel 10–13 on PHP 8.x, with Firestore as the datastore. Best suited to teams already standardised on Firebase and Laravel; it adds nothing for SQL-backed applications. Treat it as a require-dev or ops-tooling dependency rather than a production runtime dependency, and keep it out of the deployable artifact if possible.
Migration path: v5.1.5 → v5.2.0 is a minor release containing one feature commit (Laravel 13 support). No removals, no renames, no deprecations announced. Upgrade is a composer update with no code changes expected. The only meaningful migration consideration is the inverse direction: teams on Laravel 10/11 should confirm the widened framework constraint did not simultaneously raise the PHP floor or bump a Google SDK major.
Compatibility: Verify three axes before adoption — (a) Laravel/Illuminate constraint vs. our pinned framework version, (b) PHP floor, (c) Google Cloud Firestore client constraint vs. any other Firestore-touching package in the monorepo. Conflict on (c) is the most likely blocker and is not visible from the release note.
Sequencing:
^5.2 and let Renovate/Dependabot surface future Laravel-major bumps for re-review.Maintenance: Low ongoing code maintenance (it is a discrete CLI tool, not embedded in request paths) but elevated dependency maintenance — Laravel major releases and Google SDK majors both arrive annually and the package must track both. With a single maintainer and an infrequent release cadence, expect lag between a Laravel major shipping and this package supporting it. v5.2.0 landing in August 2026 is itself evidence of that lag pattern; budget for the possibility of carrying a fork or patch if a framework upgrade outpaces the package.
Support: Community-only. GitHub issues, no SLA, no commercial backing. Acceptable for an ops convenience tool; unacceptable as a dependency in a revenue-critical or compliance-scoped data path. Name an internal owner so the package is not orphaned when the adopting engineer moves on.
Scaling: Scaling is bounded by Firestore, not by the package. Three ceilings to plan against — per-document write cost (linear in dataset size, and the largest surprise), per-project write throughput, and PHP process memory if collections are large and the chunk size is misconfigured. For datasets beyond a few hundred thousand documents, expect to shard the copy by collection or key range and run sequentially rather than in one invocation. Validate the chunk configuration against a realistic dataset in step 4 of sequencing; do not extrapolate from a small test.
Failure modes:
Ramp-up: Very low for anyone fluent in Laravel and Firestore — a competent developer is productive in under a day, since the interface is artisan commands plus a config file. The non-trivial ramp-up is operational discipline, not the tool: knowing when it is safe to run, what to snapshot first, how to scope the copy, and how to confirm the target is complete afterwards. Write that into the runbook rather than assuming it is obvious. Estimated adoption cost for a first production-quality use, including the spike and rehearsal: roughly one engineer-week.
How can I help you explore Laravel packages today?