webman/database
Database component for webman that integrates Laravel's Illuminate database layer. It offers the query builder, Eloquent ORM, schema builder, migrations, and pagination, with connection pooling for high-performance webman apps. Works with MySQL, PostgreSQL, SQLite, and SQL Server.
Release delta (v2.1.10): the only substantive change is a widened dependency constraint — illuminate/database now accepts ^10.0 || ^11.0 || ^12.0 || ^13.0 (previously capped below 13). No API changes, no deprecations, no behavioral changes, no bug fixes listed. This is a compatibility-ceiling raise, not a feature release. It matters for upgrade planning and dependency resolution, not for architecture or code.
Positioning correction (unchanged, material): webman/database is not a Laravel package. It is the database component of the webman framework (Workerman-based, resident-memory PHP runtime) that adapts illuminate/database — Laravel's Query Builder, Eloquent ORM, Schema Builder and pagination — onto a connection-pooled, long-lived worker model. The TPM value proposition is therefore not "adopt Laravel's DB layer" but "carry Laravel-shaped developer ergonomics and existing Eloquent models into a webman service with minimal rewrite."
Architecture fit
illuminate/database holds a singleton PDO per process, which exhausts MySQL connections under N resident workers.illuminate/database directly. Adopting this package there buys a pool you don't control and a config path (config/plugin/webman/database/) that contradicts Laravel's bootstrap.Integration feasibility
config/database.php, so Laravel-fluent engineers ramp with near-zero API learning.illuminate/* 13.x components in the same tree (shared packages, monorepo tooling) will no longer get a Composer conflict when webman/database is added. That was a real blocker scenario worth flagging as now resolved.webman/console (or an alternative runner); that's the one piece of tooling that does not come for free from Laravel familiarity.Technical risk
^13.0 support, but a one-line constraint bump does not prove the package's test suite actually runs against Laravel 13. Treat 13.x as resolver-permitted, not validated, until you either see CI matrix coverage upstream or run the parity suite yourself. Historically this pattern is how "supported" versions quietly rot.Key questions
max_connections?illuminate/database ships a breaking minor — and does our policy now treat a ^13 bump as routine (it should not) or as a reviewable change?Stack fit
Illuminate\Database\* contracts; do not attempt to bootstrap a full Laravel application container inside webman.illuminate/* package you import increases the surface you must manually wire — but with v2.1.10 the version-alignment cost of that surface is materially lower.illuminate/database explicitly in your root composer.json rather than letting ^10 || ^11 || ^12 || ^13 float. The new ceiling is permission, not a recommendation to move.Migration path (strangler, not big-bang)
webman/console; run a schema-parity check against the existing database before any cutover.illuminate/database major you claim to support — v2.1.10 makes 13.x a plausible target, so either test it or exclude it.Compatibility
Db::connection(...)) and release in finally; naive DB::transaction() inside coroutines risks cross-request leakage on a reused connection.LAST_INSERT_ID). Anything relying on implicit per-request reset needs auditing.workers × pool max ≤ MySQL max_connections − headroom) must be settled before load testing, not after.illuminate/database 12→13 deprecations (query-builder internals, model attribute casting, schema API) propagate through this adapter. The adapter widening its constraint does not insulate you from those; it only stops Composer from stopping you.Sequencing
Pool design → PoC service → model-parity test suite → migration tooling swap → load test → incremental cutover → provider decommission. Migrations and pool sizing remain the two long-lead items; start both in week one. The v2.1.10 constraint bump adds no schedule work — except one half-day to confirm which illuminate/database major you are actually going to standardize on now that three majors are nominally open.
Maintenance
illuminate/database (Laravel's minor/major deprecations) and webman's plugin versions. Pin both explicitly and treat minor bumps as reviewable changes, not routine. v2.1.10 widens the first cadence without narrowing the second — net effect is more supported combinations to reason about, so pinning discipline becomes more important, not less.Support
Scaling
wait_timeout-driven stale connections, MySQL restarts, and failover: without ping/recycle logic, workers hold dead handles and surface errors until restart.Failure modes (ranked by likelihood × blast radius)
composer update slides illuminate/database from 12 to 13 on the strength of the widened constraint, exposing untested deprecation behavior in production. Cheap to prevent with an explicit root pin.Instrument pool saturation, connection age, and per-request checkout duration from day one; these three metrics catch four of the six failure modes.
Ramp-up
How can I help you explore Laravel packages today?