tempo_cli/db/
mod.rs

1pub mod connection;
2pub mod migrations;
3pub mod queries;
4pub mod advanced_queries;
5
6use anyhow::Result;
7use std::path::Path;
8
9pub use connection::Database;
10
11pub fn initialize_database(db_path: &Path) -> Result<Database> {
12    println!("Initializing database at: {:?}", db_path);
13    let db = Database::new(db_path)?;
14    println!("Database connection created");
15    
16    // Run migrations
17    println!("Running migrations...");
18    migrations::run_migrations(&db.connection)?;
19    println!("Migrations completed");
20    
21    Ok(db)
22}
23
24pub fn get_database_path() -> Result<std::path::PathBuf> {
25    let data_dir = dirs::data_dir()
26        .or_else(|| dirs::home_dir())
27        .ok_or_else(|| anyhow::anyhow!("Could not determine data directory"))?;
28    
29    let vibe_dir = data_dir.join(".vibe");
30    std::fs::create_dir_all(&vibe_dir)?;
31    
32    Ok(vibe_dir.join("data.db"))
33}