feat(db): add migrations system and push subscriptions persistence
Some checks failed
Build MIPS Binary / build (push) Has been cancelled
Some checks failed
Build MIPS Binary / build (push) Has been cancelled
- Add sqlx migration system with migrations/ directory - Create 001_init.sql and 002_push_subscriptions.sql migration files - Move from manual CREATE TABLE to version-controlled migrations - Add push_subscriptions table with DB persistence - PushSubscriptionStore now loads from DB on startup - Add save/remove/get methods for push subscriptions in db.rs - Move VAPID keys to .env file (with fallback to hardcoded values) - Delete old vibetorrent.db and recreate with migrations
This commit is contained in:
@@ -320,13 +320,25 @@ async fn main() {
|
||||
// Channel for Events (Diffs)
|
||||
let (event_bus, _) = broadcast::channel::<AppEvent>(1024);
|
||||
|
||||
#[cfg(feature = "push-notifications")]
|
||||
let push_store = match push::PushSubscriptionStore::with_db(&db).await {
|
||||
Ok(store) => store,
|
||||
Err(e) => {
|
||||
tracing::error!("Failed to initialize push store: {}", e);
|
||||
push::PushSubscriptionStore::new()
|
||||
}
|
||||
};
|
||||
|
||||
#[cfg(not(feature = "push-notifications"))]
|
||||
let push_store = ();
|
||||
|
||||
let app_state = AppState {
|
||||
tx: tx.clone(),
|
||||
event_bus: event_bus.clone(),
|
||||
scgi_socket_path: args.socket.clone(),
|
||||
db: db.clone(),
|
||||
#[cfg(feature = "push-notifications")]
|
||||
push_store: push::PushSubscriptionStore::new(),
|
||||
push_store,
|
||||
};
|
||||
|
||||
// Spawn background task to poll rTorrent
|
||||
|
||||
Reference in New Issue
Block a user