Weave Code
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 provides a secure PDO-based database layer with support for MySQL, PostgreSQL, SQLite, and SQL Server. Includes schema introspection/declaration, migrations, smart identifier quoting, query builders, nested queries, and transactions.

View on GitHub
Deep Wiki
Context7
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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky