Avoid panicking in db.Connect and db.Create, as they are library functions
This commit is contained in:
parent
b7b581ff5a
commit
dbde3c8724
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user