Fix removing existing sqlite files
This commit is contained in:
parent
974d028e51
commit
e17cac854a
1 changed files with 9 additions and 2 deletions
11
pkg/db/db.go
11
pkg/db/db.go
|
@ -168,12 +168,19 @@ func initSqliteEngine() (engine *xorm.Engine, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try opening the db file to return a better error message if that does not work
|
// Try opening the db file to return a better error message if that does not work
|
||||||
|
var exists = true
|
||||||
|
if _, err := os.Stat(path); err != nil {
|
||||||
|
exists = !os.IsNotExist(err)
|
||||||
|
}
|
||||||
file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE, 0)
|
file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("could not open database file [uid=%d, gid=%d]: %s", os.Getuid(), os.Getgid(), err)
|
return nil, fmt.Errorf("could not open database file [uid=%d, gid=%d]: %s", os.Getuid(), os.Getgid(), err)
|
||||||
}
|
}
|
||||||
_ = file.Close() // We directly close the file because we only want to check if it is writable. It will be reopened lazily later by xorm.
|
_ = file.Close() // We directly close the file because we only want to check if it is writable. It will be reopened lazily later by xorm.
|
||||||
_ = os.Remove(path) // Remove the file to not prevent the db from creating another one
|
|
||||||
|
if !exists {
|
||||||
|
_ = os.Remove(path) // Remove the file to not prevent the db from creating another one
|
||||||
|
}
|
||||||
|
|
||||||
return xorm.NewEngine("sqlite3", path)
|
return xorm.NewEngine("sqlite3", path)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue