Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32207970
D14841.1765120570.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
D14841.1765120570.diff
View Options
diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteSchema.cpp b/native/cpp/CommonCpp/DatabaseManagers/SQLiteSchema.cpp
--- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteSchema.cpp
+++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteSchema.cpp
@@ -30,6 +30,18 @@
" target_message TEXT"
");"
+ "CREATE TABLE IF NOT EXISTS backup_messages ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " local_id TEXT,"
+ " thread TEXT NOT NULL,"
+ " user TEXT NOT NULL,"
+ " type INTEGER NOT NULL,"
+ " future_type INTEGER,"
+ " content TEXT,"
+ " time INTEGER NOT NULL,"
+ " target_message TEXT"
+ ");"
+
"CREATE TABLE IF NOT EXISTS olm_persist_account ("
" id INTEGER UNIQUE PRIMARY KEY NOT NULL,"
" account_data TEXT NOT NULL"
@@ -50,6 +62,15 @@
" extras TEXT NOT NULL"
");"
+ "CREATE TABLE IF NOT EXISTS backup_media ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " container TEXT NOT NULL,"
+ " thread TEXT NOT NULL,"
+ " uri TEXT NOT NULL,"
+ " type TEXT NOT NULL,"
+ " extras TEXT NOT NULL"
+ ");"
+
"CREATE TABLE IF NOT EXISTS threads ("
" id TEXT UNIQUE PRIMARY KEY NOT NULL,"
" type INTEGER NOT NULL,"
@@ -70,6 +91,26 @@
" timestamps TEXT"
");"
+ "CREATE TABLE IF NOT EXISTS backup_threads ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " type INTEGER NOT NULL,"
+ " name TEXT,"
+ " description TEXT,"
+ " color TEXT NOT NULL,"
+ " creation_time BIGINT NOT NULL,"
+ " parent_thread_id TEXT,"
+ " containing_thread_id TEXT,"
+ " community TEXT,"
+ " members TEXT NOT NULL,"
+ " roles TEXT NOT NULL,"
+ " current_user TEXT NOT NULL,"
+ " source_message_id TEXT,"
+ " replies_count INTEGER NOT NULL,"
+ " avatar TEXT,"
+ " pinned_count INTEGER NOT NULL DEFAULT 0,"
+ " timestamps TEXT"
+ ");"
+
"CREATE TABLE IF NOT EXISTS metadata ("
" name TEXT UNIQUE PRIMARY KEY NOT NULL,"
" data TEXT NOT NULL"
@@ -80,6 +121,11 @@
" start_reached INTEGER NOT NULL"
");"
+ "CREATE TABLE IF NOT EXISTS backup_message_store_threads ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " start_reached INTEGER NOT NULL"
+ ");"
+
"CREATE TABLE IF NOT EXISTS reports ("
" id TEXT UNIQUE PRIMARY KEY NOT NULL,"
" report TEXT NOT NULL"
@@ -142,6 +188,11 @@
" thread_activity_store_entry TEXT NOT NULL"
");"
+ "CREATE TABLE IF NOT EXISTS backup_thread_activity ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " thread_activity_store_entry TEXT NOT NULL"
+ ");"
+
"CREATE TABLE IF NOT EXISTS inbound_p2p_messages ("
" id INTEGER PRIMARY KEY,"
" message_id TEXT NOT NULL,"
@@ -156,11 +207,21 @@
" entry TEXT NOT NULL"
");"
+ "CREATE TABLE IF NOT EXISTS backup_entries ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " entry TEXT NOT NULL"
+ ");"
+
"CREATE TABLE IF NOT EXISTS message_store_local ("
" id TEXT UNIQUE PRIMARY KEY NOT NULL,"
" local_message_info TEXT NOT NULL"
");"
+ "CREATE TABLE IF NOT EXISTS backup_message_store_local ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " local_message_info TEXT NOT NULL"
+ ");"
+
"CREATE VIRTUAL TABLE IF NOT EXISTS message_search USING fts5("
" original_message_id UNINDEXED,"
" message_id UNINDEXED,"
@@ -177,12 +238,21 @@
"CREATE INDEX IF NOT EXISTS media_idx_container"
" ON media (container);"
+ "CREATE INDEX IF NOT EXISTS backup_media_idx_container"
+ " ON backup_media (container);"
+
"CREATE INDEX IF NOT EXISTS messages_idx_thread_time"
" ON messages (thread, time);"
+ "CREATE INDEX IF NOT EXISTS backup_messages_idx_thread_time"
+ " ON backup_messages (thread, time);"
+
"CREATE INDEX IF NOT EXISTS messages_idx_target_message_type_time"
" ON messages (target_message, type, time);"
+ "CREATE INDEX IF NOT EXISTS backup_messages_idx_target_message_type_time"
+ " ON backup_messages (target_message, type, time);"
+
"CREATE INDEX IF NOT EXISTS outbound_p2p_messages_idx_id_timestamp"
" ON outbound_p2p_messages (device_id, timestamp);"
diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteSchemaMigrations.cpp b/native/cpp/CommonCpp/DatabaseManagers/SQLiteSchemaMigrations.cpp
--- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteSchemaMigrations.cpp
+++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteSchemaMigrations.cpp
@@ -821,6 +821,91 @@
return false;
}
+bool create_backup_tables(sqlite3 *db) {
+ std::string query =
+ "CREATE TABLE IF NOT EXISTS backup_messages ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " local_id TEXT,"
+ " thread TEXT NOT NULL,"
+ " user TEXT NOT NULL,"
+ " type INTEGER NOT NULL,"
+ " future_type INTEGER,"
+ " content TEXT,"
+ " time INTEGER NOT NULL,"
+ " target_message TEXT"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS backup_media ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " container TEXT NOT NULL,"
+ " thread TEXT NOT NULL,"
+ " uri TEXT NOT NULL,"
+ " type TEXT NOT NULL,"
+ " extras TEXT NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS backup_threads ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " type INTEGER NOT NULL,"
+ " name TEXT,"
+ " description TEXT,"
+ " color TEXT NOT NULL,"
+ " creation_time BIGINT NOT NULL,"
+ " parent_thread_id TEXT,"
+ " containing_thread_id TEXT,"
+ " community TEXT,"
+ " members TEXT NOT NULL,"
+ " roles TEXT NOT NULL,"
+ " current_user TEXT NOT NULL,"
+ " source_message_id TEXT,"
+ " replies_count INTEGER NOT NULL,"
+ " avatar TEXT,"
+ " pinned_count INTEGER NOT NULL DEFAULT 0,"
+ " timestamps TEXT"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS backup_message_store_threads ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " start_reached INTEGER NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS backup_thread_activity ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " thread_activity_store_entry TEXT NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS backup_entries ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " entry TEXT NOT NULL"
+ ");"
+
+ "CREATE TABLE IF NOT EXISTS backup_message_store_local ("
+ " id TEXT UNIQUE PRIMARY KEY NOT NULL,"
+ " local_message_info TEXT NOT NULL"
+ ");"
+
+ "CREATE INDEX IF NOT EXISTS backup_media_idx_container"
+ " ON backup_media (container);"
+ "CREATE INDEX IF NOT EXISTS backup_messages_idx_thread_time"
+ " ON backup_messages (thread, time);"
+ "CREATE INDEX IF NOT EXISTS backup_messages_idx_target_message_type_time"
+ " ON backup_messages (target_message, type, time);";
+
+ char *error;
+ sqlite3_exec(db, query.c_str(), nullptr, nullptr, &error);
+
+ if (!error) {
+ return true;
+ }
+
+ std::ostringstream stringStream;
+ stringStream << "Error creating backup tables: " << error;
+ Logger::log(stringStream.str());
+
+ sqlite3_free(error);
+ return false;
+}
+
SQLiteMigrations SQLiteSchema::migrations{
{{1, {create_drafts_table, true}},
{2, {rename_threadID_to_key, true}},
@@ -866,6 +951,7 @@
{52, {recreate_inbound_p2p_messages_table, true}},
{53, {add_timestamps_column_to_threads_table, true}},
{54, {create_dm_operations_table, true}},
- {55, {convert_target_message_to_standard_column, true}}}};
+ {55, {convert_target_message_to_standard_column, true}},
+ {56, {create_backup_tables, true}}}};
} // namespace comm
diff --git a/web/shared-worker/_generated/comm_query_executor.wasm b/web/shared-worker/_generated/comm_query_executor.wasm
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 7, 3:16 PM (16 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5842619
Default Alt Text
D14841.1765120570.diff (8 KB)
Attached To
Mode
D14841: [SQLite] create tables for backup data
Attached
Detach File
Event Timeline
Log In to Comment