mirror of
https://github.com/haexhub/haex-hub.git
synced 2025-12-16 22:20:51 +01:00
switch to nuxt ui
This commit is contained in:
32
src-tauri/src/binss/setup-triggers.rs
Normal file
32
src-tauri/src/binss/setup-triggers.rs
Normal file
@ -0,0 +1,32 @@
|
||||
use crdt::trigger::TriggerManager;
|
||||
use rusqlite::{Connection, Result};
|
||||
// anpassen an dein Crate-Modul
|
||||
|
||||
fn main() -> Result<()> {
|
||||
// Vault-Datenbank öffnen
|
||||
let conn = Connection::open("vault.db")?;
|
||||
|
||||
println!("🔄 Setup CRDT triggers...");
|
||||
|
||||
// Tabellen aus der DB holen
|
||||
let mut stmt =
|
||||
conn.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'haex_%' AND NOT LIKE 'haex_crdt_%';")?;
|
||||
let table_iter = stmt.query_map([], |row| row.get::<_, String>(0))?;
|
||||
|
||||
for table_name in table_iter {
|
||||
let table_name = table_name?;
|
||||
println!("➡️ Processing table: {}", table_name);
|
||||
|
||||
// Trigger für die Tabelle neu anlegen
|
||||
match TriggerManager::setup_triggers_for_table(&conn, &table_name) {
|
||||
Ok(_) => println!(" ✅ Triggers created for {}", table_name),
|
||||
Err(e) => println!(
|
||||
" ⚠️ Could not create triggers for {}: {:?}",
|
||||
table_name, e
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
println!("✨ Done setting up CRDT triggers.");
|
||||
Ok(())
|
||||
}
|
||||
@ -195,7 +195,7 @@ impl SqlProxy {
|
||||
} */
|
||||
Statement::Update {
|
||||
table,
|
||||
assignments: assignments,
|
||||
assignments,
|
||||
from,
|
||||
selection,
|
||||
returning,
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
use crate::crdt::hlc;
|
||||
use rusqlite::{Connection, Result, Row};
|
||||
use serde::Serialize;
|
||||
use std::fmt::Write;
|
||||
@ -76,6 +75,7 @@ impl TriggerManager {
|
||||
|
||||
let insert_trigger_sql = self.generate_insert_trigger_sql(table_name, &pks, &cols_to_track);
|
||||
let update_trigger_sql = self.generate_update_trigger_sql(table_name, &pks, &cols_to_track);
|
||||
let drop_insert_trigger_sql = self.drop_trigger_sql(table_name, "insert");
|
||||
|
||||
let tx = conn.transaction()?;
|
||||
tx.execute_batch(&format!("{}\n{}", insert_trigger_sql, update_trigger_sql))?;
|
||||
@ -127,6 +127,10 @@ impl TriggerManager {
|
||||
)
|
||||
}
|
||||
|
||||
fn drop_trigger_sql(&self, table: &str, action: &str) -> String {
|
||||
format!("DROP TRIGGER IF EXISTS z_crdt_{table}_{action};")
|
||||
}
|
||||
|
||||
fn generate_update_trigger_sql(
|
||||
&self,
|
||||
table_name: &str,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
//mod browser;
|
||||
mod android_storage;
|
||||
mod crdt;
|
||||
pub mod crdt;
|
||||
mod database;
|
||||
mod extension;
|
||||
mod models;
|
||||
|
||||
Reference in New Issue
Block a user