mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 05:30:07 +08:00
✏️ 迁移数据库本体
This commit is contained in:
parent
7fc4a6425b
commit
e8b0e475d7
3
.gitignore
vendored
3
.gitignore
vendored
@ -6,6 +6,9 @@ data/acgimage
|
||||
data/saucenao
|
||||
data/fortune
|
||||
data/hs
|
||||
data/nsetu
|
||||
data/nwife
|
||||
data/sleep
|
||||
plugins/*.so
|
||||
plugins/*.dll
|
||||
.idea/
|
||||
|
||||
BIN
data/BookReview/bookreview.db
Normal file
BIN
data/BookReview/bookreview.db
Normal file
Binary file not shown.
@ -14,7 +14,7 @@ import (
|
||||
|
||||
const dbpath = "data/BookReview/"
|
||||
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}
|
||||
|
||||
@ -32,18 +32,19 @@ func init() {
|
||||
defer f.Close()
|
||||
resp, err := http.Get(dburl)
|
||||
|
||||
if err == nil {
|
||||
defer resp.Body.Close()
|
||||
if resp.ContentLength > 0 {
|
||||
log.Printf("[bookreview]从镜像下载数据库%d字节...", resp.ContentLength)
|
||||
data, err := io.ReadAll(resp.Body)
|
||||
if err == nil && len(data) > 0 {
|
||||
_, _ = f.Write(data)
|
||||
}
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
if resp.ContentLength > 0 {
|
||||
log.Printf("[bookreview]从镜像下载数据库%d字节...", resp.ContentLength)
|
||||
data, err := io.ReadAll(resp.Body)
|
||||
if err == nil && len(data) > 0 {
|
||||
_, _ = f.Write(data)
|
||||
} else {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
panic(err)
|
||||
}
|
||||
err := db.Create("book_review", &book{})
|
||||
if err != nil {
|
||||
|
||||
43
plugin_book_review/migrate/main.go
Normal file
43
plugin_book_review/migrate/main.go
Normal 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()
|
||||
}
|
||||
46
plugin_book_review/migrate/model.go
Normal file
46
plugin_book_review/migrate/model.go
Normal 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"
|
||||
}
|
||||
@ -12,8 +12,8 @@ import (
|
||||
"github.com/FloatTech/ZeroBot-Plugin/plugin_sleep_manage/model"
|
||||
)
|
||||
|
||||
const dbpath = "data/SleepManage/"
|
||||
const dbfile = dbpath + "sleepmanage.db"
|
||||
const dbpath = "data/sleep/"
|
||||
const dbfile = dbpath + "manage.db"
|
||||
const prio = 4
|
||||
|
||||
var engine = control.Register("sleepmanage", &control.Options{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user