All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
JsonForceEmptyObjectAsArray
eloquent cast
- PHP 8.4 deprecation warnings because of implicitly marked nullable parameters
- Laravel 11.30 compatability (
$dimension
parameter ofvector
migration type is now optional)
- The dimensions value for the
vector
migration type is now required to copy the behavior of Laravel 11.25.0
- Support PostgreSQL's
^@
starts with operator.
- Eager loading and lazy loading prevention was not implemented for lazyByCursor()
orderByNullsFirst
,orderByNullsLast
and$nulls
parameter fororderBy
- Migration failed when automatic aliases had been disabled in Laravel
- The
whereLike
andorWhereLike
had been changed to the behavior of Laravel 11.17.0
- Migration failed when automatic aliases had been disabled in Laravel
- Changes to adapt to bc-breaking migration behavior of Laravel 11.15.0
- Changing compression mode conflicted with upstream Laravel 11.x changes
- PHPStan Extension Installer Support
- Doctrine DBAL 4 Support (deep Laravel 11 dependency)
concurrently()
modifier for index creation
- UUIDv7 expression
- Laravel 11 compatibility
- Incompatability with Laravel 10.47.0
- Some query builder methods had to be changed because they've now overlapped with new ones added by Laravel 10.47:
whereAll
->whereAllValues
whereNotAll
->whereNotAllValues
orWhereAll
->orWhereAllValues
orWhereNotAll
->orWhereNotAllValues
whereAny
->whereAnyValue
whereNotAny
->whereNotAnyValue
orWhereAny
->orWhereAnyValue
orWhereNotAny
->orWhereNotAnyValue
- IDE autocomplete support for PhpStorm with Laravel Idea plugin
- Table prefixes had been ignored by query grammar
- USING clause for column type migrations
- pgvector support: vector type, eloquent cast, query builder similarity sorting
- Alternative column names for views
- Integer array type for migrations
- Integer array cast for eloquent
- whereIntegerArrayMatches query builder method
- Support Laravel 10.13 grammar escaping for values
- Automatic date format traits for eloquent models
- Initial column modifier
- Tables can be set unlogged
- Table storage parameters can be set
rawIndex
definitions had not been handled correctly
- Triggers can be added to tables
- Laravel 10.x compatibility
- Provide doctrine data types for all console operations to support schema inspection tools
- Domain types support for migrations
- Extensions can be added to specific schemas
- The recursive keyword was added multiple times when multiple recursive CTEs had been added
- Adding the same CTE multiple times now only keeps the last one
- Methods with query param now use Laravel 9 query contract for doctype to do better PHPStan type checking
- Functions created in migrations can also return tables
- Unique indexes with NULLS NOT DISTINCT options
whereAll
clause for query builderwhereAny
clause for query builderwhereBoolean
clause for query builderwhereBetweenSymmetric
clause for query builder
- Manually created
\Illuminate\Database\Query\Builder
instances failed when trying to process CTE expressions
- Creating and deleting functions in migrations
- Column Types:
- bigIntegerMultiRange
- dateMultiRange
- decimalMultiRange
- integerMultiRange
- timestampMultiRange
- timestampTzMultiRange
- Common Table Expressions
- PostgreSQL returning statements for eloquent builder:
deleteReturning
forceDeleteReturning
insertOrIgnoreReturning
insertReturning
insertUsingReturning
updateFromReturning
updateOrInsertReturning
updateReturning
upsertReturning
whereLike
clause for query builder
- Rolling back migrations failed with type error since 0.14.0
- Support for left later joins with an 'ON true' condition
- PHPStan support for all extensions to Laravel
lazyByCursor
forQuery\Builder
andEloquent\Builder
- Changed returning statements to return a collection instead of array like Query\Builder::get()
- The return type of all returning statements was changed from array to Collection to replicate the Query\Builder::get() method signature.
- Materialized views
- PostgreSQL returning statements for query builder:
deleteReturning
insertOrIgnoreReturning
insertReturning
insertUsingReturning
updateFromReturning
updateOrInsertReturning
updateReturning
upsertReturning
- Eloquent concern
RefreshDataOnSave
- The
ZeroDowntimeMigration
concern namespace moved fromTpetry\PostgresqlEnhanced\Concerns
toTpetry\PostgresqlEnhanced\Schema\Concerns
- Laravel 9 compatibility
- If exists fulltext index dropping
- Partial index support for fulltext indexes
- Storage parameters support for fulltext indexes
- Column weighting for fulltext indexes and query builder
- Lateral Subquery Joins for Query Builder
- PostgreSQL specific explain output on Eloquent\Builder instances
- PostgreSQL specific explain output on Query\Builder instances
- Zero Downtime Migration support for Laravel 6.x and 7.x
- Zero Downtime Migrations
- The internal grammar name for the PostgreSQL types has been changed to their native names
- Identity column type
- Tsvector column type
- Functional Indexes
- Column Index Options
- Column compression modifier
- Index Storage Parameters
- Index Include Columns
- Query Builder to raw query string did use integer instead of boolean literal for boolean values
- Partial indexes are no longer extra functions of the table blueprint, they are now index options
- Query builder to sql helper's typing did not allow eloquent builder
- If exists index dropping
- Partial indexes
- Service Provider no longer extends DatabaseServiceProvider (#1)
- Extension Management
- View Management
- Column Types:
- bigIntegerRange
- bit
- caseInsensitiveText
- dateRange
- decimalRange
- europeanArticleNumber13
- hstore
- integerRange
- internationalStandardBookNumber
- internationalStandardBookNumber13
- internationalStandardMusicNumber
- internationalStandardMusicNumber13
- internationalStandardSerialNumber
- internationalStandardSerialNumber13
- ipNetwork
- labelTree
- timestampRange
- timestampTzRange
- universalProductNumber
- varbit
- xml