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 2026Releases
latest 47-
2.23.119 Aug 2026Release notes
Open source → -
2.23.019 Aug 2026Release notes
Open source → -
2.22.111 Aug 2026Release notes
Open source → -
2.22.009 Aug 2026Release notes
Open source →Release notes
Open source → -
2.21.024 Jun 2026 -
2.20.011 Jun 2026 -
2.19.028 May 2026Release notes
Open source →2.19.0 (2026-05-28)
Features
Tests
- OnConflict: add tests for cache key generation with update parameters (a064944)
Release notes
Open source → -
2.18.028 May 2026 -
2.17.015 May 2026Release notes
Open source →Release notes
Open source → -
2.16.019 Mar 2026 -
2.15.216 Feb 2026Release notes
Open source → -
2.15.112 Dec 2025Release notes
Open source → -
2.15.022 Jul 2025 -
2.14.014 Jul 2025Release notes
Open source →Features
- add parameters to SubQuery (74dbd7c)
- add SubQuery injection (8079759)
- add ULID column type (#233) (f8b3a87)
- MySQL: add
firstandafterinto column declaration (#226) (7ad2df1)
Bug Fixes
Documentation
- cover SubQuery with comments (8579419)
Styles
- fix code style; rename
SubQueryInjectiontoSubQuery(b9cf08e) - improve code formatting and consistency in Compiler, Jsoner, and SubQuery (02484a6)
Code Refactoring
- rename
selectSubQuerytosubQueryand update related query logic (727ca0e)
Tests
-
2.13.027 Mar 2025Release notes
Open source →Features
- add
getComment()method annotation intoColumnInterface(02c4962) - Add getComment() method to
AbstractColumn(9e780d8) - add public
Driver::clearCache()method (3cc2757)
Continuous Integration
- update workflow actions (d55b36f)
- add
-
2.12.017 Feb 2025Release notes
Open source →Features
- Reconnect on MySQL disconnected by inactivity (3f776ab)
Tests
- update MSSQL config (14ec20e)
Continuous Integration
- add ODBC driver to tests with codecov (7dfd98e)
-
2.11.310 Dec 2024 -
2.11.223 Oct 2024 -
2.11.122 Oct 2024Release notes
Open source → -
2.11.011 Jun 2024Release notes
Open source →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
- apply yamllint (0506fb1)
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.004 Apr 2024Release notes
Open source →Features
- Add support JSON columns in
orderBystatement by @msmakouz (#184) - Add
mediumTextcolumn type by @msmakouz (#178) - Add support for the
NOToperator in SQL queries. Add new methodswhereNot,andWhereNot, andorWhereNotby @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)
- Add support JSON columns in
-
2.9.027 Mar 2024Release notes
Open source →Features
- Added
logInterpolatedQueriesfor detailed query logging and refinedlogQueryParametersto 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
orderBymethod 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)
- Added
-
2.8.108 Feb 2024Release notes
Open source →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)
-
2.8.008 Feb 2024Release notes
Open source →Features
- The
withDatetimeMicrosecondsoption 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)
- The
-
2.7.121 Dec 2023Release notes
Open source →Bug Fixes
- Fix setting
precisionandscalethrough 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)
- Fix setting
-
2.7.004 Dec 2023Release notes
Open source →Features
- Add
varbinarysupport in MySQL; optimizesizeattribute by @msmakouz (#146) - Add the ability to use WHERE IN and WHERE NOT IN with array values. The value sequence may contain
FragmentInterfaceobjets by @msmakouz and @roxblnfk (#147)
- Add
-
2.6.123 Nov 2023Nothing published for this version
-
2.6.001 Nov 2023Release notes
Open source →Features
- MySQL driver:
- Add the type
smallIntegerby @gam6itko (#128) - Change mapping of the JSON type from
texttojsonby @romanpravda (#121)
- Add the type
- Postgres driver:
- Add the
restartIdentityparameter to theeraseTablemethod by @msmakouz (#132) - Change mapping of the JSON type from
texttojsonby @msmakouz (#134)
- Add the
- All the drivers:
- Add
enableForeignKeyConstraintsanddisableForeignKeyConstraintsmethods in Driver Handlers by @msmakouz (#130) - Add an ability to disable the query cache before query using
withoutCache()by @msmakouz and @roxblnfk (#137)
- Add
- 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)
- MySQL driver:
-
2.5.203 Jul 2023Release notes
Open source →Bug Fixes
- Fix Postgres schema restoring after reconnect by @msmakouz in (#126)
-
2.5.108 Jun 2023Release notes
Open source →Bug Fixes
- Fix drastic increase of insert statements on pg driver with complex primary keys by @wolfy-j (#122)
-
2.5.012 May 2023Release notes
Open source →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
readonlySchemafor columns by @msmakouz (#116) - Add
AbstractForeignKey::$indexproperty 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
TableInterfaceandColumnInterfaceby @vjik (#108) - Fix typos by @arogachev (#110, #111)
-
2.4.107 Mar 2023Release notes
Open source →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)
-
2.4.001 Feb 2023Release notes
Open source →⚠ BREAKING CHANGES
- Since v2.4.0, interpolation in logs is disabled by default
Features
- Add option
logQueryParametersin the driveroptionsto enable interpolation in SQL query logs by @msmakouz (#95) - Add PostgreSQL specific data types by @msmakouz (#93)
- Add MySQL
SETtype support by @msmakouz (#92)
Bug Fixes
- Fix Interpolator performance by @msmakouz (#94) thx @hustlahusky
-
2.3.027 Dec 2022Release notes
Open source →Features
- Add support for array values in the
INandNOT INoperators by @roxblnfk (#69, #70, #71) - Add
PdoInterfaceas a possible return type for theDriver::getPDO()method by @roxblnfk (#76) - Add the
optionsarray parameter to all driver configs to pass additional driver options. ThewithDatetimeMicrosecondsoption can be set totrueto store aDateTimewith microseconds by @msmakouz (#86) - Add a config recovery mechanism via
__set_state()by @wakebit (#83) - Add the ability to define the
sizeof adatetimecolumn by @msmakouz (#86) - Add support for the unsigned and zerofill properties in MySQL Integer types by @roxblnfk (#88)
- Add support for array values in the
-
2.2.227 Sep 2022Release notes
Open source →Bug Fixes
- Fix transaction level changing on disconnect when transaction is starting by @roxblnfk (#76)
-
2.2.102 Jul 2022Release notes
Open source →Bug Fixes
- Hotfix: make the
$configparameter of theDatabaseConfigconstructor optional again by @roxblnfk
- Hotfix: make the
-
2.2.023 Jun 2022Release notes
Open source →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::forgerForeignKeymethod by @BeMySlaveDarlin (#53) - Fix compatibility with Spiral Framework 3 packages:
- Remove overriding of the
$configproperty in theDatabaseConfigclass by @roxblnfk (#64) - Update
composer.jsondependencies
- Remove overriding of the
-
2.1.320 May 2022 -
2.1.220 Jan 2022Release notes
Open source →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)
-
2.1.112 Jan 2022Release notes
Open source →Miscellaneous
- Fix phpdoc for the
SelectQuery::orderBymethod by @butschster (#45) - Fix problem with driver cloning by @butschster (#44)
- Fix phpdoc for the
-
2.1.031 Dec 2021Release notes
Open source →Features
- Added
psr/logdependency 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/logdependency by @thgs (#35) - Downgrade spiral dependencies to stable by @roxblnfk (#40)
- Added
-
2.0.024 Dec 2021Release notes
Open source →⚠ BREAKING CHANGES
- Namespace
Spiral\Databasereplaced withCycle\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
ColumnReturnableInterfacefor database drivers @butschster (#25)
Miscellaneous
- The package moved from
spiral/databasetocycle/database - Improvements to
joinmethods @butschster - Tests have been restructured @butschster (#21)
- Namespace
-
1.0.405 Jul 2022Nothing published for this version
-
1.0.315 Nov 2021Nothing published for this version
-
1.0.210 Nov 2021Nothing published for this version
-
1.0.103 Nov 2021Nothing published for this version
-
1.0.004 Oct 2021Nothing published for this version