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

Database Laravel Package

cycle/database

Cycle DBAL is a secure database abstraction layer for PHP with support for MySQL, PostgreSQL, SQLite, and SQL Server. It offers schema introspection and declaration, query builders, nested queries, transactions, migrations, and database partitions.

View on GitHub
Deep Wiki
Context7
2.23.3

2.23.3 (2026-09-27)

Bug Fixes

  • Postgres: escape apostrophes in JSON path segments (#271) (da09e24)
2.23.1

2.23.1 (2026-08-19)

Documentation

  • update PHP version requirement to 8.1 in README (c864c37)
2.23.0

2.23.0 (2026-08-19)

Features

2.22.1

2.22.1 (2026-08-11)

Performance Improvements

  • Schema: batch table introspection queries (#262) (7e2d488)
2.22.0

2.22.0 (2026-08-09)

Features

  • SQLite: support the RETURNING clause on INSERT/UPSERT (#260) (4d85c6f)
2.21.0

2.21.0 (2026-06-24)

Features

  • OnConflict: index-inference predicate for ON CONFLICT (Postgres/SQLite) (#258) (bdd2cea)

Bug Fixes

  • MySQL: omit row alias on upsert DO NOTHING — the alias made the no-op col = col ambiguous at runtime (bdd2cea)
  • Postgres: unquote EXCLUDED in upsert DO UPDATE — quoted "EXCLUDED" broke every update-branch upsert at runtime (bdd2cea)
2.20.0

2.20.0 (2026-06-11)

Features

  • SelectQuery: refine Psalm integer types on query bounds (#257) (2cae328)

Bug Fixes

  • SelectQuery: process the last partial chunk in runChunks() (#255) (38c3403)
2.19.0

2.19.0 (2026-05-28)

Features

  • Add wrapOnWhere() method to group JOIN ON conditions (#253) (aafa2f6)

Tests

  • OnConflict: add tests for cache key generation with update parameters (a064944)
2.18.0

2.18.0 (2026-05-28)

Features

  • Add InsertQuery::onConflict() method (#249) (395a7ff)
  • Add SelectQuery::wrapWhere() to group WHERE conditions (#250) (8f7c03a)
2.17.0

2.17.0 (2026-05-14)

Features

  • Add server-side cursors for streaming SELECT results (#247) (2acc10e)
2.16.0

2.16.0 (2026-03-19)

Features

  • Add charset and collation support for MySQL columns (#246) (26e33ef)
  • Added $distinct parameter to SelectQuery::count (#242) (23842c0)
  • update PHP version requirement to 8.1 (#244) (16e0874)

Styles

  • php-cs-fixer: fix coding standards (16e0874)
2.15.2

2.15.2 (2026-02-16)

Bug Fixes

  • Replace deprecated MySQL constant with scalar (#237) (b1a9cd7)
2.15.1

2.15.1 (2025-12-12)

Bug Fixes

  • correct condition check for named parameters in Interpolator (#238) (283709e)
2.15.0

2.15.0 (2025-07-22)

Features

2.14.0

2.14.0 (2025-07-14)

Features

Bug Fixes

  • MySQL: unsigned boolean Columns comparison (#234) (82378ea)

Documentation

  • cover SubQuery with comments (8579419)

Styles

  • fix code style; rename SubQueryInjection to SubQuery (b9cf08e)
  • improve code formatting and consistency in Compiler, Jsoner, and SubQuery (02484a6)

Code Refactoring

  • rename selectSubQuery to subQuery and update related query logic (727ca0e)

Tests

  • enhance subquery tests with additional conditions and parameters (09013c6)
  • MySQL: Added a test case proving bug with boolean columns (c2c05d1)
  • MySQL: enhance boolean column configuration tests with zerofill and nullable checks (0129e7f)
2.13.0

2.13.0 (2025-03-27)

Features

  • add getComment() method annotation into ColumnInterface (02c4962)
  • Add getComment() method to AbstractColumn (9e780d8)
  • add public Driver::clearCache() method (3cc2757)

Continuous Integration

  • update workflow actions (d55b36f)
2.12.0

2.12.0 (2025-02-17)

Features

  • Reconnect on MySQL disconnected by inactivity (3f776ab)

Tests

Continuous Integration

  • add ODBC driver to tests with codecov (7dfd98e)
2.11.3

2.11.3 (2024-12-10)

Bug Fixes

Styles

  • apply Code Style to tests (02c2437)
  • php-cs-fixer: fix coding standards (3822f76)
2.11.2

2.11.2 (2024-10-23)

Styles

  • apply new code style (89a7c57)
  • php-cs-fixer: fix coding standards (1eae6db)

Continuous Integration

  • add Spiral CS fixer (a72e1ae)
  • normalize DB passwords in tests; fix style in cs-fix workflow (b514009)
  • use common MSSQL workflow (5c434ec)
  • use common MySQL workflow (c5aa164)
  • use common Postgres workflow (8c17e52)
2.11.1

2.11.1 (2024-10-22)

Bug Fixes

  • Improve postgres array type detection: detect internal array types as string[], integer[], float[] insteed of ARRAY (bb762bb)
  • typecasting of an integer to a boolean in SQLite (32c29c7)

Continuous Integration

  • fix MSSQL initialization in CI (678c049)
  • replace docker-compose with docker compose (914ed58)
2.11.0

2.11.0 (2024-06-11)

Features

  • add INTERSECT and EXCEPT operators (#204) (b3cc5a3)
  • add the ability to specify the full name of the join type (0fa0adf)

Bug Fixes

  • add parameter consideration when hashing the query part with orderBy (c874f7d)
  • triggering changelog build (4002820)

Documentation

  • add issue templates (75086af)
  • added security.md file (17aefde)
  • move COC to .github directory (08cadcb)
  • removing failing ci issue template (7200063)
  • update CONTRIBUTING.md (f6a9722)
  • updating contribution guide (ad3fbf0)

Styles

Dependencies

  • composer: added ergebnis/composer-normalize (1dddad4)

Tests

Continuous Integration

  • add cycle/gh-actions (2507324)
  • add default CODEOWNERS file (c080e0c)
  • added coding-standards initial CI job (9725b49)
  • auto apply labels based on files and branches (86971f0)
  • do not include v prefix in tag (d9587c3)
  • fixes in commit linting (ca925bd)
  • push composer.lock to enable cache locks (726a0fe)
  • switch to github changelog type (8275f0c)
  • use actions/labeler directly (a9fa3b8)
  • use fixed versions for actions instead of master (bd4d708)
2.10.0

What's Changed

Features

  • Add support JSON columns in orderBy statement by @msmakouz (#184)
  • Add mediumText column type by @msmakouz (#178)
  • Add support for the NOT operator in SQL queries. Add new methods whereNot, andWhereNot, and orWhereNot by @msmakouz (#185)

Bug Fixes

  • Fix caching of SQL insert query with Fragment values by @msmakouz (#177)
  • Fix detection of enum values in PostgreSQL when a enum field has only one value by @msmakouz (#181)
  • Fix psalm type for DatabaseInterface::transaction() method by @roxblnfk (#186)

Continuous Integration

  • Automate changelog and release management @lotyp (#189)
2.9.0

What's Changed

Improved orderBy method by @butschster in https://github.com/cycle/database/pull/167

  • Now the method can accept null as a parameter for the sorting direction, providing more flexibility when constructing queries.
  • Added support for PostgreSQL-specific directions NULLS FIRST and NULLS LAST for more control over null value ordering in result sets.

Improved logging of SQL queries by @lotyp in https://github.com/cycle/database/pull/165

  • Added logInterpolatedQueries for detailed query logging and refined logQueryParameters to accurately log query parameters as arrays, enhancing ORM debugging and monitoring.
  • Improved logging with enriched context in driver, including driver details and query parameters.

Other changes

New Contributors

Full Changelog: https://github.com/cycle/database/compare/2.8.1...2.9.0

2.8.1

What's Changed

  • Fix compiling of Fragment with parameters in the returning() definition by @msmakouz (#161)
  • Fix comparison of Fragment in Column default value by @msmakouz (#162)

Full Changelog: https://github.com/cycle/database/compare/2.8.0...2.8.1

2.8.0

What's Changed

Full Changelog: https://github.com/cycle/database/compare/2.7.1...2.8.0

2.7.1

What's Changed

  • Fix setting precision and scale through attributes by @msmakouz (#148)
  • Fix quoting with an underscore at the beginning by @msmakouz (#151)
  • Fix behavior of the Column::type() method by adding default size to column type mappings by @msmakouz (#150)

Full Changelog: https://github.com/cycle/database/compare/2.7.0...2.7.1

2.7.0

What's Changed

  • Add varbinary support in MySQL; optimize size attribute by @msmakouz (#146)
  • Add the ability to use WHERE IN and WHERE NOT IN with array values The value sequence may contain FragmentInterface objets by @msmakouz and @roxblnfk (#147)

Full Changelog: https://github.com/cycle/database/compare/2.6.1...2.7.0

2.6.1

What's Changed

Full Changelog: https://github.com/cycle/database/compare/2.6.0...2.6.1

2.6.0

What's Changed

  • Fix incorrect parameters processing for JOIN subqueries by @smelesh (#133)
  • MySQL driver:
    • Add the type smallInteger by @gam6itko (#128)
    • Change mapping of the JSON type from text to json by @romanpravda (#121)
  • Postgres driver:
    • Add the restartIdentity parameter to the eraseTable method by @msmakouz (#132)
    • Change mapping of the JSON type from text to json by @msmakouz (#134)
  • All the drivers:
    • Add enableForeignKeyConstraints and disableForeignKeyConstraints methods in Driver Handlers by @msmakouz (#130)
    • Add an ability to disable the query cache before query using withoutCache() by @msmakouz and @roxblnfk (#137)
  • JSON support:

New Contributors

Full Changelog: https://github.com/cycle/database/compare/2.5.2...2.6.0

2.5.2

What's Changed

  • Fix Postgres schema restoring after reconnect by @msmakouz in #126

Full Changelog: https://github.com/cycle/database/compare/2.5.1...2.5.2

2.5.1

What's Changed

  • Fix drastic increase of insert statements on pg driver with complex primary keys by @wolfy-j (#122)

New Contributors

Full Changelog: https://github.com/cycle/database/compare/2.5.0...2.5.1

2.5.0

What's Changed

  • Add ability to use non-primary serial column by @msmakouz (#106)
  • Add ability to configure DB port passing a string by @msmakouz (#109)
  • Add ability to define a custom type column by @msmakouz (#104)
  • Add the ability to define readonlySchema for columns by @msmakouz (#116)
  • Add AbstractForeignKey::$index property to enable/disable index creation by @msmakouz (#119)
  • Fix inserting an array of rowsets without calling the columns method by @msmakouz (#120)
  • Improve types for TableInterface and ColumnInterface by @vjik (#108)
  • Fix typos by @arogachev (#110, #111)

New Contributors

Full Changelog: https://github.com/cycle/database/compare/2.4.1...2.5.0

2.4.1

What's Changed

Full Changelog: https://github.com/cycle/database/compare/2.4.0...2.4.1

2.4.0

What's Changed

  • Add option logQueryParameters in the driver options to enable interpolation in SQL query logs. Since v2.4.0, interpolation in logs is disabled by default by @msmakouz (#95)
  • Add PostgreSQL specific data types by @msmakouz (#93)
  • Add MySQL SET type support by @msmakouz (#92)
  • Fix Interpolator performance by @msmakouz (#94) thx @hustlahusky

Full Changelog: https://github.com/cycle/database/compare/2.3.0...2.4.0

2.3.0

What's Changed

  • Add support for array values in the IN and NOT IN operators by @roxblnfk (#69, #70, #71)
  • Add PdoInterface as a possible return type for the Driver::getPDO() method by @roxblnfk (#76)
  • Add the options array parameter to all driver configs to pass additional driver options. The withDatetimeMicroseconds option can be set to true to store a DateTime with microseconds by @msmakouz (#86)
  • Add a config recovery mechanism via __set_state() by @wakebit (#83)
  • Add the ability to define the size of a datetime column by @msmakouz (#86)
  • Add support for the unsigned and zerofill properties in MySQL Integer types by @roxblnfk (#88)

New Contributors

Full Changelog: https://github.com/cycle/database/compare/2.2.1...2.3.0

2.2.2
  • Fix transaction level changing on disconnect when transaction is starting by @roxblnfk (#76)

Full Changelog: https://github.com/cycle/database/compare/2.2.1...2.2.2

2.2.1
  • Hotfix: make the $config parameter of the DatabaseConfig constructor optional again by @roxblnfk
2.2.0

What's Changed

  • Add supporting for PHP 8.1 Enumerations by @roxblnfk (#67)
  • Add supporting for smallint column type by @gam6itko (#58)
  • Fix typo in the \Cycle\Database\Schema\State::forgerForeignKey method by @BeMySlaveDarlin (#53)
  • Fix compatibility with Spiral Framework 3 packages:
    • Remove overriding of the $config property in the DatabaseConfig class by @roxblnfk (#64)
    • Update composer.json dependencies

New Contributors

Full Changelog: https://github.com/cycle/database/compare/2.1.3...2.2.0

2.1.3

What's Changed

New Contributors

Full Changelog: https://github.com/cycle/database/compare/2.1.2...2.1.3

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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast