Hello Swift community,
GRDB, the "toolkit for SQLite databases, with a focus on application development" has been upgraded to version 4.11.0.
Since the last announcement in this forum, quite a few improvements have been added. Most notably:
-
@gjeck added an API for renaming table columns.
-
@pakko972 has enabled automatic memory management on iOS (GRDB now automatically frees non-essential memory when application gets a memory warning, or when application enters background).
-
The SQL builder, named the "query interface", understands more application requests:
extension Team { static let players = hasMany(Player.self) } // Delete all empty teams without any players try Team.having(Team.players.isEmpty).deleteAll(db)
-
Extending the query interface with support for more SQLite functions or expressions has become much easier (Swift 5+):
// Add support for the DATE SQLite function func date(_ value: SQLExpressible) -> SQLExpression { SQLLiteral("DATE(\(value))").sqlExpression } let players = try Player .filter(date(Column("creationDate")) == "2020-03-02") .fetchAll(db)
Version v4.11.0 also comes with a breaking change, in the way database migrations are handled. The probability that it breaks any application is so low that I decided to ship anyway.
For a detailed description of this breaking change, and other information, check out the full release notes.
Happy GRDB!