GRDB — библиотека для работы с базой данных SQLite. Она может решать такие задачи, как:
- Генерация SQL: Создайте методы сохранения и извлечения данных, чтобы вам не приходилось иметь дело с SQL и необработанными строками, когда вы этого не хотите.
- Наблюдение за базой данных: Получайте уведомления о модификации значений базы данных.
- Надежный параллелизм: Многопоточные приложения могут эффективно использовать свои базы данных, поддерживающие одновременное чтение и запись.
- Миграции: Эволюция схемы базы данных по мере выпуска новых версий приложения.
Не всем разработчикам нужны расширенные возможности SQLite. Но когда это необходимо, GRDB будет настолько совершенной, насколько вы захотите. Приходите со своими знаниями SQL и SQLite или осваивайте новые в процессе работы!
Пример работы с GRDB
import GRDB // 1. Open a database connection let dbQueue = try DatabaseQueue(path: "/path/to/database.sqlite") // 2. Define the database schema try dbQueue.write { db in try db.create(table: "player") { t in t.primaryKey("id", .text) t.column("name", .text).notNull() t.column("score", .integer).notNull() } } // 3. Define a record type struct Player: Codable, FetchableRecord, PersistableRecord { var id: String var name: String var score: Int } // 4. Write and read in the database try dbQueue.write { db in try Player(id: "1", name: "Arthur", score: 100).insert(db) try Player(id: "2", name: "Barbara", score: 1000).insert(db) } let players: [Player] = try dbQueue.read { db in try Player.fetchAll(db) }