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.1

Documentation

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

Features

2.22.1

Performance Improvements

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

Features

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

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

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

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

Features

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

Features

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

Code Refactoring

  • Rename CursorableInterface to CursorInterface (89dbfda)
2.16.0

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

Bug Fixes

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

Bug Fixes

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

Features

2.14.0

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

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

Features

  • Reconnect on MySQL disconnected by inactivity (3f776ab)

Tests

Continuous Integration

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

Bug Fixes

Styles

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

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

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

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

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

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

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.0

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

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

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

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:

Bug Fixes

  • Fix incorrect parameters processing for JOIN subqueries by @smelesh (#133)
2.5.2

Bug Fixes

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

Bug Fixes

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

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

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.0

⚠ 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

2.3.0

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

Bug Fixes

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

Bug Fixes

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

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
2.1.3

Bug Fixes

2.1.2

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.1

Miscellaneous

  • Fix phpdoc for the SelectQuery::orderBy method by @butschster (#45)
  • Fix problem with driver cloning by @butschster (#44)
2.1.0

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

⚠ BREAKING CHANGES

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

Features

Miscellaneous

  • The package moved from spiral/database to cycle/database
  • Improvements to join methods @butschster
  • Tests have been restructured @butschster (#21)
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.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core