Skip to content

Commit

Permalink
Improve delete client event table
Browse files Browse the repository at this point in the history
  • Loading branch information
bgoncal committed Feb 24, 2025
1 parent b1ce696 commit 3b3df06
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 36 deletions.
6 changes: 0 additions & 6 deletions HomeAssistant.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -550,8 +550,6 @@
420CFC6D2D3F9C6E009A94F3 /* CarPlayConfigTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420CFC6B2D3F9C6E009A94F3 /* CarPlayConfigTable.swift */; };
420CFC702D3F9C86009A94F3 /* AssistPipelinesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420CFC6F2D3F9C86009A94F3 /* AssistPipelinesTable.swift */; };
420CFC712D3F9C86009A94F3 /* AssistPipelinesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420CFC6F2D3F9C86009A94F3 /* AssistPipelinesTable.swift */; };
420CFC742D3F9C98009A94F3 /* ClientEventTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420CFC732D3F9C98009A94F3 /* ClientEventTable.swift */; };
420CFC752D3F9C98009A94F3 /* ClientEventTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420CFC732D3F9C98009A94F3 /* ClientEventTable.swift */; };
420CFC782D3F9CAB009A94F3 /* AppEntityRegistryListForDisplayTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420CFC772D3F9CAB009A94F3 /* AppEntityRegistryListForDisplayTable.swift */; };
420CFC792D3F9CAB009A94F3 /* AppEntityRegistryListForDisplayTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420CFC772D3F9CAB009A94F3 /* AppEntityRegistryListForDisplayTable.swift */; };
420CFC7C2D3F9CCB009A94F3 /* AppPanelTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420CFC7B2D3F9CCB009A94F3 /* AppPanelTable.swift */; };
Expand Down Expand Up @@ -1905,7 +1903,6 @@
420CFC672D3F9C40009A94F3 /* WatchConfigTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchConfigTable.swift; sourceTree = "<group>"; };
420CFC6B2D3F9C6E009A94F3 /* CarPlayConfigTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarPlayConfigTable.swift; sourceTree = "<group>"; };
420CFC6F2D3F9C86009A94F3 /* AssistPipelinesTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssistPipelinesTable.swift; sourceTree = "<group>"; };
420CFC732D3F9C98009A94F3 /* ClientEventTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientEventTable.swift; sourceTree = "<group>"; };
420CFC772D3F9CAB009A94F3 /* AppEntityRegistryListForDisplayTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppEntityRegistryListForDisplayTable.swift; sourceTree = "<group>"; };
420CFC7B2D3F9CCB009A94F3 /* AppPanelTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppPanelTable.swift; sourceTree = "<group>"; };
420CFC7F2D3F9D89009A94F3 /* DatabaseTables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseTables.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -3762,7 +3759,6 @@
420CFC672D3F9C40009A94F3 /* WatchConfigTable.swift */,
420CFC6B2D3F9C6E009A94F3 /* CarPlayConfigTable.swift */,
420CFC6F2D3F9C86009A94F3 /* AssistPipelinesTable.swift */,
420CFC732D3F9C98009A94F3 /* ClientEventTable.swift */,
420CFC772D3F9CAB009A94F3 /* AppEntityRegistryListForDisplayTable.swift */,
420CFC7B2D3F9CCB009A94F3 /* AppPanelTable.swift */,
);
Expand Down Expand Up @@ -7456,7 +7452,6 @@
1168BF312718070400DD4D15 /* NSMutableAttributedString+Additions.swift in Sources */,
B67CE8B922200F220034C1D0 /* Environment.swift in Sources */,
428338452BA1BB4F004798C2 /* Spaces.swift in Sources */,
420CFC742D3F9C98009A94F3 /* ClientEventTable.swift in Sources */,
11B7DBFD266BE7550090BD3B /* LocalPushEvent.swift in Sources */,
11B38EEF275C54A300205C7B /* OpenPageIntentHandler.swift in Sources */,
4278C9BF2C89DD5D00A7B5F4 /* HAAppEntity.swift in Sources */,
Expand Down Expand Up @@ -7707,7 +7702,6 @@
11358AEF24FCA8BE0074C4E2 /* ActiveStateManager.swift in Sources */,
D03D893B20E0B2E300D4F28D /* AppConstants.swift in Sources */,
119DE933263325C20099F7D8 /* IconDrawable+Settings.swift in Sources */,
420CFC752D3F9C98009A94F3 /* ClientEventTable.swift in Sources */,
114CBAE82839E49E00A9BAFF /* CustomServerTrustManager.swift in Sources */,
D03D893520E0AEF100D4F28D /* Realm+Initialization.swift in Sources */,
D0EEF2C9214D89A700D1D360 /* HAAPI+RequestHelpers.swift in Sources */,
Expand Down
7 changes: 4 additions & 3 deletions Sources/Shared/Database/DatabaseTables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ public enum GRDBDatabaseTable: String {
case watchConfig
case assistPipelines
case carPlayConfig
// Dropped since 2025.2, now saved as json file
// Context: https://github.com/groue/GRDB.swift/issues/1626#issuecomment-2623927815
case clientEvent
case appEntityRegistryListForDisplay
case appPanel
case customWidget

// Dropped since 2025.2, now saved as json file
// Context: https://github.com/groue/GRDB.swift/issues/1626#issuecomment-2623927815
case clientEvent
}

public enum DatabaseTables {
Expand Down
20 changes: 19 additions & 1 deletion Sources/Shared/Database/GRDB+Initialization.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ public extension DatabaseQueue {
// Create tables if needed
DatabaseQueue.tables().forEach { $0.createIfNeeded(database: database) }

deleteOldTables(database: database)

Check failure on line 14 in Sources/Shared/Database/GRDB+Initialization.swift

View workflow job for this annotation

GitHub Actions / test

cannot use instance member 'deleteOldTables' within property initializer; property initializers run before 'self' is available

Check failure on line 14 in Sources/Shared/Database/GRDB+Initialization.swift

View workflow job for this annotation

GitHub Actions / test

cannot convert value of type 'DatabaseQueue' to expected argument type 'DatabasePool'

Check failure on line 14 in Sources/Shared/Database/GRDB+Initialization.swift

View workflow job for this annotation

GitHub Actions / test

cannot use instance member 'deleteOldTables' within property initializer; property initializers run before 'self' is available

Check failure on line 14 in Sources/Shared/Database/GRDB+Initialization.swift

View workflow job for this annotation

GitHub Actions / test

cannot convert value of type 'DatabaseQueue' to expected argument type 'DatabasePool'

Check failure on line 14 in Sources/Shared/Database/GRDB+Initialization.swift

View workflow job for this annotation

GitHub Actions / test

cannot use instance member 'deleteOldTables' within property initializer; property initializers run before 'self' is available

Check failure on line 14 in Sources/Shared/Database/GRDB+Initialization.swift

View workflow job for this annotation

GitHub Actions / test

cannot convert value of type 'DatabaseQueue' to expected argument type 'DatabasePool'

#if targetEnvironment(simulator)
print("GRDB App database is stored at \(AppConstants.appGRDBFile.description)")
#endif
Expand Down Expand Up @@ -39,12 +41,28 @@ public extension DatabaseQueue {
WatchConfigTable(),
CarPlayConfigTable(),
AssistPipelinesTable(),
ClientEventTable(),
AppEntityRegistryListForDisplayTable(),
AppPanelTable(),
CustomWidgetTable(),
]
}

private func deleteOldTables(database: DatabasePool) {
do {
/*
ClientEvent used to be saved in GRDB, but because of a problem of one process holding
lock on the database and causing crash 0xdead10cc now it is saved as a json file
More information: https://github.com/groue/GRDB.swift/issues/1626#issuecomment-2623927815
*/
try database.write { db in
try db.drop(table: GRDBDatabaseTable.clientEvent.rawValue)
}
} catch {
let errorMessage =
"Failed or not needed delete client event GRDB info, error: \(error.localizedDescription)"
Current.Log.verbose(errorMessage)
}
}
}

protocol DatabaseTableProtocol {
Expand Down
26 changes: 0 additions & 26 deletions Sources/Shared/Database/Tables/ClientEventTable.swift

This file was deleted.

0 comments on commit 3b3df06

Please sign in to comment.