github vapor/fluent 3.0.0-rc.3
Fluent 3.0.0 RC 3

latest releases: 4.13.0, 4.12.0, 4.11.0...
pre-release8 years ago

New:

  • Generic database queries: QueryBuilder and SchemaBuilder now store query types generic to each specific database. This means you can now do much of what required raw SQL queries with type-safe Swift!
  • Timestampable & SoftDeletable are now part of Model: This allows for users to opt in to exactly which timestamps they would like to use. It also removes a lot of type-erasing and casting that needed to happen internally. New lifecycle hooks have been added for soft-deletion as well.
  • Generic transactions + convenience methods: Transactions now allow for a generic return type. Use the new convenience method on DatabaseConnectable to perform a transaction.
  • Data and KeyPath conversion failures are now assertions. This makes working with Fluent a lot easier (huge reduction in try statements) for what really should be develop-time errors.
  • Aggregates are now generic.
  • New update(data:) and create(data:) methods on QueryBuilder allow for easy batch updates.
  • Joins now support joining additional models to previously joined tables.

Fixed:

  • Tons of bug fixes throughout Fluent and all of its drivers.

Breaking changes:

  • Model entity now defaults to the model's type name. It no longer attempts to create a lowercased, pluralized string. Implement static var entity: String on your model if you want to define a custom entity (#492).
  • Timestampable and SoftDeletable key paths must now be optional. Not-implementing these key paths (or returning nil) is equivalent to not conforming to the protocol.
  • join methods have been simplified: join(\Pet.userID, to: \User.id)
  • Please report any breaking changes you notice not listed--they may be unintentional

Don't miss a new fluent release

NewReleases is sending notifications on new releases.