Skip to content

Commit d99a413

Browse files
committed
create table if need before load and update database
1 parent e2997a0 commit d99a413

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

Sources/SQLiteService/SQLiteDataBase.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,31 +239,39 @@ extension SQLiteDataBase {
239239

240240
public func loadValue<T: Table, S: ScalarType>(_ query: SelectQuery<T>) throws -> S? {
241241

242+
try self.createTableOrNot(T.self)
242243
return try iterateDeserialize(query: query, deserialize: { $0.next() }).first
243244
}
244245

245246
public func load<T: Table, R: RowValueType>(_ query: SelectQuery<T>) throws -> [R] {
246247

248+
try self.createTableOrNot(T.self)
247249
return try iterateDeserialize(query: query, deserialize: R.init)
248250
}
249251

250252
public func load<T: Table>(_ table: T.Type, query: SelectQuery<T>) throws -> [T.EntityType] {
251253

254+
try self.createTableOrNot(T.self)
252255
return try iterateDeserialize(query: query, deserialize: T.EntityType.init)
253256
}
254257

255258
public func load<T: Table, V>(_ query: SelectQuery<T>,
256259
mapping: (CursorIterator) throws -> V) throws -> [V] {
260+
261+
try self.createTableOrNot(T.self)
257262
return try iterateDeserialize(query: query, deserialize: mapping)
258263
}
259264

260265
public func load<T: Table, R: RowValueType>(_ query: JoinQuery<T>) throws -> [R] {
261266

267+
try self.createTableOrNot(T.self)
262268
return try iterateDeserialize(query: query, deserialize: R.init)
263269
}
264270

265271
public func load<T: Table, V>(_ query: JoinQuery<T>,
266272
mapping: (CursorIterator) throws -> V) throws -> [V] {
273+
274+
try self.createTableOrNot(T.self)
267275
return try iterateDeserialize(query: query, deserialize: mapping)
268276
}
269277

@@ -302,6 +310,8 @@ extension SQLiteDataBase {
302310

303311
public func update<T>(_ table: T.Type, query: UpdateQuery<T>) throws where T : Table {
304312

313+
try self.createTableOrNot(table)
314+
305315
let stmt = try prepare(statement: query.asStatement())
306316

307317
defer {

Tests/SQLiteServiceTests/SQLiteDatabaseTests.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ extension SQLiteDatabaseTests {
135135
func testDatabase_insertModels() {
136136
// given
137137
self.openDataBase()
138-
try? self.database.createTableOrNot(self.table)
139138
var inserted: Bool = false
140139

141140
// when

0 commit comments

Comments
 (0)