Avoid panicking in db.Connect and db.Create, as they are library functions

This commit is contained in:
wispem-wantex 2025-11-08 19:36:55 -08:00
parent b7b581ff5a
commit dbde3c8724

View File

@ -54,15 +54,32 @@ func Create(path string) (*sqlx.DB, error) {
// Create DB file // Create DB file
fmt.Printf("Creating............. %s\n", path) fmt.Printf("Creating............. %s\n", path)
db := sqlx.MustOpen("sqlite3", path+"?_foreign_keys=on&_journal_mode=WAL") db, err := sqlx.Open("sqlite3", path)
db.MustExec(*sql_schema) if err != nil {
return nil, fmt.Errorf("opening db: %w", err)
}
// Initialize schema
if _, err = db.Exec("pragma foreign_keys=on; pragma journal_mode=WAL;"); err != nil {
return nil, fmt.Errorf("running pragma statements: %w", err)
}
if _, err = db.Exec(*sql_schema); err != nil {
return nil, fmt.Errorf("creating schema: %w", err)
}
return db, nil return db, nil
} }
func Connect(path string) (*sqlx.DB, error) { func Connect(path string) (*sqlx.DB, error) {
db := sqlx.MustOpen("sqlite3", fmt.Sprintf("%s?_foreign_keys=on&_journal_mode=WAL", path)) db, err := sqlx.Open("sqlite3", path)
err := CheckAndUpdateVersion(db) if err != nil {
return nil, fmt.Errorf("opening db: %w", err)
}
if _, err = db.Exec("pragma foreign_keys=on; pragma journal_mode=WAL;"); err != nil {
return nil, fmt.Errorf("running pragma statements: %w", err)
}
err = CheckAndUpdateVersion(db)
return db, err return db, err
} }