colopl/laravel-spanner
Laravel database driver for Google Cloud Spanner. Adds Eloquent and query builder support so applications can use Spanner as a familiar backend with models, migrations, transactions, and session handling, simplifying integration with Google's globally distributed database.
colopl/laravel-spanner is a Laravel database driver for Google Cloud Spanner, fitting Laravel services that need horizontally scalable, strongly consistent relational storage on GCP. It is not a default fit for small workloads where Spanner cost and schema discipline outweigh benefits. v12.0.0 is now a stable GA release, exiting the beta line tracked previously (v12.0.0-beta2). This materially de-risks the platform decision: production promotion no longer requires beta risk acceptance as a gating item, though the underlying Spanner design constraints are unchanged.isolation_level (PR #300) introduces consistency/concurrency semantics that application code and tests may implicitly depend on — default behavior should be confirmed as unchanged. The index-name fix for indexes with ORDER BY (PR #303) is a correctness fix but alters generated DDL, so existing schemas may drift from what the driver now emits. Remaining risks: Laravel/PHP version constraints, raw SQL incompatibility, DDL/migration handling, transaction retry semantics, and community package maintenance.google/cloud-spanner or extension baseline? Does v12.0.0 correspond to Laravel 12 compatibility, and is v11 still supported for upgrade laggards? What is the default isolation_level, and does changing it affect existing transaction retry behavior? Does the ORDER BY index-name fix change emitted DDL for schemas already deployed (i.e., does it require a corrective migration)? What production references exist for the v12 GA line? How are migrations, DDL, and schema changes managed? What is the cost and operational ownership model for Spanner?isolation_level, corrected index DDL). Inventory raw SQL, database-specific functions, transactions, locks, indexes, foreign-key assumptions, and migration patterns. Prototype schema design in Spanner, validate with the emulator and staging, then migrate data through batch jobs or a controlled backfill. Define cutover and rollback before production use.v12.0.0 (GA) and isolate the Spanner connection. Explicitly audit for Cloud Spanner v2 client breaking changes, including credential/ADC loading, session pool defaults, and error classes caught by application code. Audit packages that assume MySQL/PostgreSQL behavior, including queue, session, cache, migration, and testing packages. Validate Octane/worker compatibility, transaction retries, session lifecycle behavior, and confirm the isolation_level default matches v11 semantics. Re-run DDL generation tests for indexes with ORDER BY to catch drift from the #303 fix.isolation_level semantics sign-off, index DDL reconciliation, load testing, cost modeling, and an operational runbook.isolation_level tuning must be load-tested.isolation_level, and DDL drift from the corrected ORDER BY index naming. Session clearing on database drop (#304) should remain explicitly tested for unintended session invalidation in parallel tests and tenant teardown.How can I help you explore Laravel packages today?