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
fmt.Printf("Creating............. %s\n", path)
db := sqlx.MustOpen("sqlite3", path+"?_foreign_keys=on&_journal_mode=WAL")
db.MustExec(*sql_schema)
db, err := sqlx.Open("sqlite3", path)
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
}
func Connect(path string) (*sqlx.DB, error) {
db := sqlx.MustOpen("sqlite3", fmt.Sprintf("%s?_foreign_keys=on&_journal_mode=WAL", path))
err := CheckAndUpdateVersion(db)
db, err := sqlx.Open("sqlite3", path)
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
}