Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMHSanaei <ho3ein.sanaei@gmail.com>2023-05-23 02:13:15 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2023-05-23 02:13:15 +0300
commitc38e1e0cfe9fd95f1cd2ed5f6c6cb10bf820b9b6 (patch)
tree6bfc79026a489ae9095cc69a1425a9125112cd1c /database
parentf36034541e3b400c44347e6c73f013224697aa6f (diff)
a lot of improvement
Diffstat (limited to 'database')
-rw-r--r--database/db.go38
1 files changed, 16 insertions, 22 deletions
diff --git a/database/db.go b/database/db.go
index d5caa702..97ef2160 100644
--- a/database/db.go
+++ b/database/db.go
@@ -17,7 +17,16 @@ import (
var db *gorm.DB
+var initializers = []func() error{
+ initUser,
+ initInbound,
+ initSetting,
+ initInboundClientIps,
+ initClientTraffic,
+}
+
func initUser() error {
+
err := db.AutoMigrate(&model.User{})
if err != nil {
return err
@@ -54,7 +63,7 @@ func initClientTraffic() error {
func InitDB(dbPath string) error {
dir := path.Dir(dbPath)
- err := os.MkdirAll(dir, fs.ModeDir)
+ err := os.MkdirAll(dir, fs.ModePerm)
if err != nil {
return err
}
@@ -75,25 +84,10 @@ func InitDB(dbPath string) error {
return err
}
- err = initUser()
- if err != nil {
- return err
- }
- err = initInbound()
- if err != nil {
- return err
- }
- err = initSetting()
- if err != nil {
- return err
- }
- err = initInboundClientIps()
- if err != nil {
- return err
- }
- err = initClientTraffic()
- if err != nil {
- return err
+ for _, initialize := range initializers {
+ if err := initialize(); err != nil {
+ return err
+ }
}
return nil
@@ -107,10 +101,10 @@ func IsNotFound(err error) bool {
return err == gorm.ErrRecordNotFound
}
-func IsSQLiteDB(file io.Reader) (bool, error) {
+func IsSQLiteDB(file io.ReaderAt) (bool, error) {
signature := []byte("SQLite format 3\x00")
buf := make([]byte, len(signature))
- _, err := file.Read(buf)
+ _, err := file.ReadAt(buf, 0)
if err != nil {
return false, err
}