✏️ 迁移数据库本体

This commit is contained in:
fumiama 2021-12-08 17:10:22 +08:00
parent 7fc4a6425b
commit e8b0e475d7
6 changed files with 105 additions and 12 deletions

3
.gitignore vendored
View File

@ -6,6 +6,9 @@ data/acgimage
data/saucenao data/saucenao
data/fortune data/fortune
data/hs data/hs
data/nsetu
data/nwife
data/sleep
plugins/*.so plugins/*.so
plugins/*.dll plugins/*.dll
.idea/ .idea/

Binary file not shown.

View File

@ -14,7 +14,7 @@ import (
const dbpath = "data/BookReview/" const dbpath = "data/BookReview/"
const dbfile = dbpath + "bookreview.db" const dbfile = dbpath + "bookreview.db"
const dburl = "https://codechina.csdn.net/anto_july/bookreview/-/raw/master/bookreview.db" const dburl = "https://codechina.csdn.net/u011570312/ZeroBot-Plugin/-/raw/master/" + dbfile
var db = &sql.Sqlite{DBPath: dbfile} var db = &sql.Sqlite{DBPath: dbfile}
@ -32,18 +32,19 @@ func init() {
defer f.Close() defer f.Close()
resp, err := http.Get(dburl) resp, err := http.Get(dburl)
if err == nil { if err != nil {
panic(err)
}
defer resp.Body.Close() defer resp.Body.Close()
if resp.ContentLength > 0 { if resp.ContentLength > 0 {
log.Printf("[bookreview]从镜像下载数据库%d字节...", resp.ContentLength) log.Printf("[bookreview]从镜像下载数据库%d字节...", resp.ContentLength)
data, err := io.ReadAll(resp.Body) data, err := io.ReadAll(resp.Body)
if err == nil && len(data) > 0 { if err == nil && len(data) > 0 {
_, _ = f.Write(data) _, _ = f.Write(data)
} } else {
panic(err) panic(err)
} }
} }
panic(err)
} }
err := db.Create("book_review", &book{}) err := db.Create("book_review", &book{})
if err != nil { if err != nil {

View File

@ -0,0 +1,43 @@
package main
import (
"os"
"github.com/FloatTech/ZeroBot-Plugin/utils/sql"
)
type book struct {
Id uint64 `db:"id"`
BookReview string `db:"bookreview"`
}
func main() {
db, err := Open(os.Args[1])
if err != nil {
panic(err)
}
newdb := &sql.Sqlite{DBPath: os.Args[2]}
err = newdb.Create("bookreview", &book{})
if err != nil {
panic(err)
}
rs, err := db.Table("book_review").Select("book_review", "").Rows()
if err != nil {
panic(err)
}
var d string
var i uint64
for rs.Next() {
err := rs.Scan(&d)
if err != nil {
panic(err)
}
i++
err = newdb.Insert("bookreview", &book{i, d})
if err != nil {
panic(err)
}
}
db.Close()
newdb.Close()
}

View File

@ -0,0 +1,46 @@
package main
import (
"os"
"github.com/jinzhu/gorm"
_ "github.com/logoove/sqlite"
)
type BrDB = gorm.DB
func Initialize(dbpath string) *BrDB {
var err error
if _, err = os.Stat(dbpath); err != nil || os.IsNotExist(err) {
// 生成文件
f, err := os.Create(dbpath)
if err != nil {
return nil
}
defer f.Close()
}
gdb, err := gorm.Open("sqlite3", dbpath)
if err != nil {
panic(err)
}
gdb.AutoMigrate(&BookReview{})
return (*BrDB)(gdb)
}
func Open(dbpath string) (*BrDB, error) {
db, err := gorm.Open("sqlite3", dbpath)
if err != nil {
return nil, err
} else {
return (*BrDB)(db), nil
}
}
type BookReview struct {
gorm.Model
BookReview string `gorm:"column:book_review"`
}
func (BookReview) TableName() string {
return "book_review"
}

View File

@ -12,8 +12,8 @@ import (
"github.com/FloatTech/ZeroBot-Plugin/plugin_sleep_manage/model" "github.com/FloatTech/ZeroBot-Plugin/plugin_sleep_manage/model"
) )
const dbpath = "data/SleepManage/" const dbpath = "data/sleep/"
const dbfile = dbpath + "sleepmanage.db" const dbfile = dbpath + "manage.db"
const prio = 4 const prio = 4
var engine = control.Register("sleepmanage", &control.Options{ var engine = control.Register("sleepmanage", &control.Options{