mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 13:59:39 +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/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/
|
||||||
|
|||||||
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 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 {
|
||||||
defer resp.Body.Close()
|
panic(err)
|
||||||
if resp.ContentLength > 0 {
|
}
|
||||||
log.Printf("[bookreview]从镜像下载数据库%d字节...", resp.ContentLength)
|
defer resp.Body.Close()
|
||||||
data, err := io.ReadAll(resp.Body)
|
if resp.ContentLength > 0 {
|
||||||
if err == nil && len(data) > 0 {
|
log.Printf("[bookreview]从镜像下载数据库%d字节...", resp.ContentLength)
|
||||||
_, _ = f.Write(data)
|
data, err := io.ReadAll(resp.Body)
|
||||||
}
|
if err == nil && len(data) > 0 {
|
||||||
|
_, _ = 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 {
|
||||||
|
|||||||
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"
|
"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{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user