From 3e5ed2b26c4c526f3b468c2ec4da6b917b1edd27 Mon Sep 17 00:00:00 2001 From: iyear Date: Mon, 14 Jun 2021 21:37:58 +0800 Subject: [PATCH] change db to sqlite --- core/mysql.go | 161 -------------------------------------- {core => model}/client.go | 18 ++--- model/sqlite.go | 23 ++++++ 3 files changed, 32 insertions(+), 170 deletions(-) delete mode 100644 core/mysql.go rename {core => model}/client.go (92%) create mode 100644 model/sqlite.go diff --git a/core/mysql.go b/core/mysql.go deleted file mode 100644 index bf637ee..0000000 --- a/core/mysql.go +++ /dev/null @@ -1,161 +0,0 @@ -package core - -import ( - "database/sql" - _ "github.com/go-sql-driver/mysql" - "gorm.io/gorm" - "main/logger" - "main/outlook" - "main/util" - "time" -) - -var db *gorm.DB - -func InitDB() error { - var err error - db, err = gorm.Open("11", &gorm.Config{ - NowFunc: func() time.Time { - return time.Now().UTC() - }, - }) - if err != nil { - return err - } - return nil -} - -//update data by msId -func UpdateData(u Client) (bool, error) { - db, err := sql.Open(dbDriverName, dbPath) - if err != nil { - logger.Println(err) - } - defer db.Close() - sqlString := `UPDATE Clients set tg_id=?,refresh_token=?,uptime=?,alias=?,client_id=?,client_secret=?,other=? where ms_id=?` - stmt, err := db.Prepare(sqlString) - if err != nil { - return false, err - } - _, err = stmt.Exec(u.TgId, u.RefreshToken, u.Uptime, u.Alias, u.ClientId, u.ClientSecret, u.Other, u.MsId) - if err != nil { - return false, err - } - return true, nil -} - -//add data -func AddData(u Client) (bool, error) { - db, err := sql.Open(dbDriverName, dbPath) - if err != nil { - logger.Println(err) - } - defer db.Close() - sqlString := ` - INSERT INTO Clients (tg_id, refresh_token,ms_id, uptime,alias,client_id,client_secret,other) - VALUES (?,?,?,?,?,?,?,?)` - stmt, err := db.Prepare(sqlString) - if err != nil { - return false, err - } - _, err = stmt.Exec(u.TgId, u.RefreshToken, u.MsId, u.Uptime, u.Alias, u.ClientId, u.ClientSecret, u.Other) - if err != nil { - return false, err - } - return true, nil -} - -//del data by ms_id -func DelData(msId string) (bool, error) { - db, err := sql.Open(dbDriverName, dbPath) - if err != nil { - logger.Println(err) - } - defer db.Close() - sqlString := `delete from Clients where ms_id=?` - stmt, err := db.Prepare(sqlString) - if err != nil { - return false, err - } - res, err := stmt.Exec(msId) - if err != nil { - return false, err - } - _, err = res.RowsAffected() - if err != nil { - return false, err - } - return true, nil -} -func QueryData(rows *sql.Rows) []Client { - - var result = make([]Client, 0) - defer rows.Close() - for rows.Next() { - var ( - tgIdt, uptimet int64 - refresht, othert, msidt, aliast, clientIdt, clientSet string - ) - rows.Scan(&tgIdt, &refresht, &msidt, &uptimet, &aliast, &clientIdt, &clientSet, &othert) - //fmt.Println(string(tgNamet) + "=>" + uptimet.Format("2006-01-02 15:04:05")) - result = append(result, Client{tgIdt, refresht, msidt, uptimet, aliast, clientIdt, clientSet, othert}) - } - return result -} -func QueryDataByMS(msId string) []Client { - db, err := sql.Open(dbDriverName, dbPath) - if err != nil { - logger.Println(err) - } - defer db.Close() - rows, err := db.Query("select * from Clients where ms_id = ?", msId) - util.CheckErr(err) - return QueryData(rows) -} - -func QueryDataAll() []Client { - db, err := sql.Open(dbDriverName, dbPath) - if err != nil { - logger.Println(err) - } - defer db.Close() - rows, err := db.Query("select * from Clients ") - util.CheckErr(err) - return QueryData(rows) -} - -//query data by tg_id -func QueryDataByTG(tgId int64) []Client { - db, err := sql.Open(dbDriverName, dbPath) - if err != nil { - logger.Println(err) - } - defer db.Close() - rows, err := db.Query("select * from Clients where tg_id = ?", tgId) - util.CheckErr(err) - return QueryData(rows) -} -func CreateTB() (bool, error) { - db, err := sql.Open(dbDriverName, dbPath) - if err != nil { - logger.Println(err) - } - defer db.Close() - sqltable := ` - create table if not exists Clients - ( - tg_id INTEGER, - refresh_token TEXT, - ms_id VARCHAR(255), - uptime INTEGER, - alias VARCHAR(255), - client_id VARCHAR(255), - client_secret VARCHAR(255), - other TEXT - );` - _, err = db.Exec(sqltable) - if err != nil { - return false, err - } - return true, nil -} diff --git a/core/client.go b/model/client.go similarity index 92% rename from core/client.go rename to model/client.go index ea55f53..6db5a02 100644 --- a/core/client.go +++ b/model/client.go @@ -1,4 +1,4 @@ -package core +package model import ( "github.com/pkg/errors" @@ -10,14 +10,14 @@ import ( ) type Client struct { - TgId int64 `gorm:"column:tg_id"` - RefreshToken string `gorm:"column:refresh_token"` - MsId string `gorm:"column:ms_id"` - Uptime int64 `gorm:"column:uptime"` - Alias string `gorm:"column:alias"` - ClientId string `gorm:"column:client_id"` - ClientSecret string `gorm:"column:client_secret"` - Other string `gorm:"column:other"` + TgId int64 `gorm:"unique;not null"` + RefreshToken string `gorm:"not null"` + MsId string `gorm:"unique;primaryKey;not null"` + Uptime int64 `gorm:"autoUpdateTime;not null"` + Alias string `gorm:"not null"` + ClientId string `gorm:"not null"` + ClientSecret string `gorm:"not null"` + Other string } const ( diff --git a/model/sqlite.go b/model/sqlite.go new file mode 100644 index 0000000..f7699fb --- /dev/null +++ b/model/sqlite.go @@ -0,0 +1,23 @@ +package model + +import ( + "gorm.io/driver/sqlite" + "gorm.io/gorm" + "time" +) + +var DB *gorm.DB + +func InitDB() error { + var err error + DB, err = gorm.Open(sqlite.Open("data.db"), &gorm.Config{ + NowFunc: func() time.Time { + return time.Now().UTC() + }, + }) + if err != nil { + return err + } + DB.AutoMigrate(&Client{}) + return nil +}