PackageTrack
Sign in Get early access

cycle/database

DBAL, schema introspection, migration and pagination

2.23.1 847K downloads/mo #3395 most downloaded on Packagist cycle/database

What this package is like to depend on

Last release 4 days ago

19 Aug 2026

Release timing varies

gaps range from 1 weeks to 5 months

Most releases are documented

notes for 41 of 47 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

47 releases · first in 2021

12 releases in the last 12 months

see the full history below

Release timeline

47 releases · Oct 2021 to Aug 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 47
  1. 2.23.1 19 Aug 2026
    Release notes

    2.23.1 (2026-08-19)

    Documentation

    • update PHP version requirement to 8.1 in README (c864c37)
    Open source →
    Release notes

    Documentation

    • update PHP version requirement to 8.1 in README (c864c37)
    Open source →
  2. 2.23.0 19 Aug 2026
    Release notes

    2.23.0 (2026-08-19)

    Features

    Open source →
    Release notes

    Features

    Open source →
  3. 2.22.1 11 Aug 2026
    Release notes

    2.22.1 (2026-08-11)

    Performance Improvements

    • Schema: batch table introspection queries (#262) (7e2d488)
    Open source →
    Release notes

    Performance Improvements

    • Schema: batch table introspection queries (#262) (7e2d488)
    Open source →
  4. 2.22.0 09 Aug 2026
    Release notes

    2.22.0 (2026-08-09)

    Features

    • SQLite: support the RETURNING clause on INSERT/UPSERT (#260) (4d85c6f)
    Open source →
    Release notes

    Features

    • SQLite: support the RETURNING clause on INSERT/UPSERT (#260) (4d85c6f)
    Open source →
  5. 2.21.0 24 Jun 2026
    Release notes

    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)
    Open source →
    Release notes

    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)
    Open source →
  6. 2.20.0 11 Jun 2026
    Release notes

    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)
    Open source →
    Release notes

    Features

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

    Bug Fixes

    • SelectQuery: process the last partial chunk in runChunks() (#255) (38c3403)
    Open source →
  7. 2.19.0 28 May 2026
    Release notes

    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)
    Open source →
    Release notes

    Features

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

    Tests

    • OnConflict: add tests for cache key generation with update parameters (a064944)
    Open source →
  8. 2.18.0 28 May 2026
    Release notes

    2.18.0 (2026-05-28)

    Features

    • Add InsertQuery::onConflict() method (#249) (395a7ff)
    • Add SelectQuery::wrapWhere() to group WHERE conditions (#250) (8f7c03a)
    Open source →
    Release notes

    Features

    • Add InsertQuery::onConflict() method (#249) (395a7ff)
    • Add SelectQuery::wrapWhere() to group WHERE conditions (#250) (8f7c03a)
    Open source →
  9. 2.17.0 15 May 2026
    Release notes

    2.17.0 (2026-05-14)

    Features

    • Add server-side cursors for streaming SELECT results (#247) (2acc10e)
    Open source →
    Release notes

    Features

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

    Code Refactoring

    • Rename CursorableInterface to CursorInterface (89dbfda)
    Open source →
  10. 2.16.0 19 Mar 2026
    Release notes

    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)
    Open source →
    Release notes

    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)
    Open source →
  11. 2.15.2 16 Feb 2026
    Release notes

    Bug Fixes

    • Replace deprecated MySQL constant with scalar (#237) (b1a9cd7)
    Open source →
  12. 2.15.1 12 Dec 2025
    Release notes

    Bug Fixes

    • correct condition check for named parameters in Interpolator (#238) (283709e)
    Open source →
  13. 2.15.0 22 Jul 2025
    Release notes

    Features

    Open source →
  14. 2.14.0 14 Jul 2025
    Release notes

    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)
    Open source →
  15. 2.13.0 27 Mar 2025
    Release notes

    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)
    Open source →
  16. 2.12.0 17 Feb 2025
    Release notes

    Features

    • Reconnect on MySQL disconnected by inactivity (3f776ab)

    Tests

    Continuous Integration

    • add ODBC driver to tests with codecov (7dfd98e)
    Open source →
  17. 2.11.3 10 Dec 2024
    Release notes

    Bug Fixes

    Styles

    • apply Code Style to tests (02c2437)
    • php-cs-fixer: fix coding standards (3822f76)
    Open source →
  18. 2.11.2 23 Oct 2024
    Release notes

    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)
    Open source →
  19. 2.11.1 22 Oct 2024
    Release notes

    Bug Fixes

    • 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)
    Open source →
  20. 2.11.0 11 Jun 2024
    Release notes

    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)
    Open source →
  21. 2.10.0 04 Apr 2024
    Release notes

    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

    • Fixed caching of SQL insert query with Fragment values by @msmakouz (#177)
    • Fixed 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)
    Open source →
  22. 2.9.0 27 Mar 2024
    Release notes

    Features

    • Added logInterpolatedQueries for detailed query logging and refined logQueryParameters to accurately log query parameters as arrays, enhancing ORM debugging and monitoring. @lotyp (#165)
    • Improved logging with enriched context in Driver.php, including driver details and query parameters. @lotyp (#165)
    • Improved orderBy method to accept a null direction parameter, providing more flexibility when constructing queries by @butschster (#167)
    • Added support for PostgreSQL-specific directions NULLS FIRST and NULLS LAST for more control over null value ordering in result sets by @butschster (#167)
    Open source →
  23. 2.8.1 08 Feb 2024
    Release notes

    Bug Fixes

    • Fix compiling of Fragment with parameters in the returning() definition by @msmakouz (#161)
    • Fix comparison of Fragment in Column default value by @msmakouz (#162)
    Open source →
  24. 2.8.0 08 Feb 2024
    Release notes

    Features

    • The withDatetimeMicroseconds option now affects the interpolator by @msmakouz (#155)
    • Postgres: support for multiple returning columns by @roxblnfk and @msmakouz (#157)
    • MSSQL: support for multiple returning columns by @msmakouz (#160)
    Open source →
  25. 2.7.1 21 Dec 2023
    Release notes

    Bug Fixes

    • 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)
    Open source →
  26. 2.7.0 04 Dec 2023
    Release notes

    Features

    • 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)
    Open source →
  27. 2.6.1 23 Nov 2023

    Nothing published for this version

  28. 2.6.0 01 Nov 2023
    Release notes

    Features

    • 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:
      • Add methods to work with JSON columns by @msmakouz and @roxblnfk (#135)
      • Add an ability to set JSON default value as an array by @msmakouz and @roxblnfk (#138)

    Bug Fixes

    • Fix incorrect parameters processing for JOIN subqueries by @smelesh (#133)
    Open source →
  29. 2.5.2 03 Jul 2023
    Release notes

    Bug Fixes

    • Fix Postgres schema restoring after reconnect by @msmakouz in (#126)
    Open source →
  30. 2.5.1 08 Jun 2023
    Release notes

    Bug Fixes

    • Fix drastic increase of insert statements on pg driver with complex primary keys by @wolfy-j (#122)
    Open source →
  31. 2.5.0 12 May 2023
    Release notes

    Features

    • 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)

    Bug Fixes

    • Fix inserting an array of rowsets without calling the columns method by @msmakouz (#120)

    Miscellaneous

    • Improve types for TableInterface and ColumnInterface by @vjik (#108)
    • Fix typos by @arogachev (#110, #111)
    Open source →
  32. 2.4.1 07 Mar 2023
    Release notes

    Bug Fixes

    • Fix: add schema to Postgres dependency table names by @msmakouz (#102)
    • Fix: don't add a table prefix when a column is quoting by @msmakouz (#103)
    Open source →
  33. 2.4.0 01 Feb 2023
    Release notes

    ⚠ BREAKING CHANGES

    • Since v2.4.0, interpolation in logs is disabled by default

    Features

    • Add option logQueryParameters in the driver options to enable interpolation in SQL query logs by @msmakouz (#95)
    • Add PostgreSQL specific data types by @msmakouz (#93)
    • Add MySQL SET type support by @msmakouz (#92)

    Bug Fixes

    • Fix Interpolator performance by @msmakouz (#94) thx @hustlahusky
    Open source →
  34. 2.3.0 27 Dec 2022
    Release notes

    Features

    • 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)
    Open source →
  35. 2.2.2 27 Sep 2022
    Release notes

    Bug Fixes

    • Fix transaction level changing on disconnect when transaction is starting by @roxblnfk (#76)
    Open source →
  36. 2.2.1 02 Jul 2022
    Release notes

    Bug Fixes

    • Hotfix: make the $config parameter of the DatabaseConfig constructor optional again by @roxblnfk
    Open source →
  37. 2.2.0 23 Jun 2022
    Release notes

    Features

    • Add supporting for PHP 8.1 Enumerations by @roxblnfk (#67)
    • Add supporting for smallint column type by @gam6itko (#58)

    Bug Fixes

    • 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
    Open source →
  38. 2.1.3 20 May 2022
    Release notes

    Bug Fixes

    • Fix query interpolation by @roxblnfk (#60)
    Open source →
  39. 2.1.2 20 Jan 2022
    Release notes

    Bug Fixes

    • Fix wrong bind parameter order in a select query with join by @roxblnfk (#48)
    • Fix access to unitialized driver property on ActiveQuery::__debugInfo() call by @roxblnfk (#46)
    Open source →
  40. 2.1.1 12 Jan 2022
    Release notes

    Miscellaneous

    • Fix phpdoc for the SelectQuery::orderBy method by @butschster (#45)
    • Fix problem with driver cloning by @butschster (#44)
    Open source →
  41. 2.1.0 31 Dec 2021
    Release notes

    Features

    • Added psr/log dependency by @thgs (#35)
    • Add ability to get/set driver name by @butschster (#38)
    • Optimize fetching indexes and primary keys in Postgres driver by @hustlahusky (#37)

    Bug Fixes

    • Fix type casting for column size value in the PG Column class by @rauanmayemir (#34)

    Miscellaneous

    • Add psr/log dependency by @thgs (#35)
    • Downgrade spiral dependencies to stable by @roxblnfk (#40)
    Open source →
  42. 2.0.0 24 Dec 2021
    Release notes

    ⚠ BREAKING CHANGES

    • Namespace Spiral\Database replaced with Cycle\Database @butschster (#1)
    • Minimal PHP version is 8.0

    Features

    • Added supporting for postgres schemas @butschster (#2)
    • Added DTO configs @SerafimArts, @msmakouz (#10, #14)
    • Added method to get transaction level @msmakouz (#23)
    • Added ColumnReturnableInterface for database drivers @butschster (#25)

    Miscellaneous

    • The package moved from spiral/database to cycle/database
    • Improvements to join methods @butschster
    • Tests have been restructured @butschster (#21)
    Open source →
  43. 1.0.4 05 Jul 2022

    Nothing published for this version

  44. 1.0.3 15 Nov 2021

    Nothing published for this version

  45. 1.0.2 10 Nov 2021

    Nothing published for this version

  46. 1.0.1 03 Nov 2021

    Nothing published for this version

  47. 1.0.0 04 Oct 2021

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive